Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
logparser — Ein Machine-Learning-Toolkit für Log-Parsing [ICSE'19, DSN'16] | Kitploit
Tools/GitHubGitHub/logpai/logparser
Maschinelles LernenPapers & ForschungAnomalieerkennungLog-Analyse
GitHublogpai/logparser

logparser

Ein Machine-Learning-Toolkit für Log-Parsing [ICSE'19, DSN'16]

Repository anzeigen
2.0k579vor 1 JahrVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

Logparser

Python version Pypi version Pypi version Downloads License

Logparser bietet ein Machine-Learning-Toolkit und Benchmarks für das automatisierte Log-Parsing, das ein entscheidender Schritt für die strukturierte Log-Analyse ist. Mit logparser können Benutzer automatisch Ereignisvorlagen aus unstrukturierten Logs extrahieren und rohe Lognachrichten in eine Sequenz strukturierter Ereignisse umwandeln. Der Prozess des Log-Parsings wird in der Literatur auch als Message-Template-Extraktion, Log-Key-Extraktion oder Log-Message-Clustering bezeichnet.


Ein Beispiel für Log-Parsing

🌈 Neue Updates

  • Seit der ersten Veröffentlichung von logparser wurden aufgrund der Inkompatibilität mit Python 3 viele PRs und Issues eingereicht. Schließlich aktualisieren wir logparser v1.0.0 mit Unterstützung für Python 3. Danke für alle Beiträge (#PR86, #PR85, #PR83, #PR80, #PR65, #PR57, #PR53, #PR52, #PR51, #PR49, #PR18, #PR22)!

  • Wir bauen das Paket-Wheel logparser3 und veröffentlichen es auf pypi. Bitte per pip install logparser3 installieren.

  • Wir refaktorieren die Codestruktur und verschönern den Code mit dem Python-Codeformatierer black.

Verfügbare Log-Parser:

💡 Du bist eingeladen, einen PR einzureichen, um deinen Parser-Code zu logparser beizutragen und dein Paper zur Tabelle hinzuzufügen.

Installation

Wir empfehlen, das logparser-Paket und die Abhängigkeiten per pip install zu installieren.``` pip install logparser3

root@kitploit:~
Insbesondere hängt das Paket von den folgenden Anforderungen ab. Beachten Sie, dass Regex-Matching in Python fehleranfällig ist. Daher empfehlen wir, die Regex-Bibliothek auf die Version 2022.3.2 zu fixieren.

Hinweis: Falls Ihnen ``"Error: need to escape..."`` begegnet, folgen Sie bitte den Anweisungen [hier](https://github.com/logpai/logparser/issues/122).

+ python 3.6+
+ regex 2022.3.2
+ numpy
+ pandas
+ scipy
+ scikit-learn

Bedingte Anforderungen:

+ If using MoLFI: `deap`
+ If using SHISO: `nltk`
+ If using SLCT: `gcc`
+ If using LogCluster: `perl`
+ If using NuLog: `torch`, `torchvision`, `keras_preprocessing`
+ If using DivLog: `openai`, `tiktoken` (require python 3.8+)

### Erste Schritte

1. Demo ausführen:

    Für jeden Log-Parser bieten wir eine Demo an, die Ihnen den Einstieg erleichtert. Jede Demo zeigt die grundlegende Verwendung des jeweiligen Log-Parsers und die zu konfigurierenden Hyperparameter. Beispielsweise zeigt der folgende Befehl, wie Sie die Demo für Drain ausführen.

    ```
    cd logparser/Drain
    python demo.py
    ```

2. Benchmark ausführen:
  
    Für jeden Log-Parser stellen wir ein Benchmark-Skript bereit, um das Log-Parsing auf den [loghub_2k-Datensätzen](https://github.com/logpai/logparser/tree/main/data#loghub_2k) zur Bewertung der Parsing-Genauigkeit auszuführen. Sie können auch [andere Benchmark-Datensätze für das Log-Parsing](https://github.com/logpai/logparser/tree/main/data#datasets) verwenden.

    ```
    cd logparser/Drain 
    python benchmark.py
    ```

    Die Benchmark-Ergebnisse finden Sie in der Readme-Datei jedes Parsers, z. B. https://github.com/logpai/logparser/tree/main/logparser/Drain#benchmark.

3. Eigene Logs parsen:

    Es ist einfach, logparser zum Parsen Ihrer eigenen Log-Daten einzusetzen. Dazu müssen Sie zunächst das Paket logparser3 installieren. Anschließend können Sie Ihr eigenes Skript anhand des folgenden Codeausschnitts entwickeln, um mit dem Log-Parsing zu beginnen. Den vollständigen Beispielcode finden Sie unter [example/parse_your_own_logs.py](https://github.com/logpai/logparser/blob/main/example/parse_your_own_logs.py).

    ```python
    from logparser.Drain import LogParser

    input_dir = 'PATH_TO_LOGS/' # The input directory of log file
    output_dir = 'result/'  # The output directory of parsing results
    log_file = 'unknow.log'  # The input log file name
    log_format = '<Date> <Time> <Level>:<Content>' # Define log format to split message fields
    # Regular expression list for optional preprocessing (default: [])
    regex = [
        r'(/|)([0-9]+\.){3}[0-9]+(:[0-9]+|)(:|)' # IP
    ]
    st = 0.5  # Similarity threshold
    depth = 4  # Depth of all leaf nodes

    parser = LogParser(log_format, indir=input_dir, outdir=output_dir,  depth=depth, st=st, rex=regex)
    parser.parse(log_file)
    ```

    Nach der Ausführung von logparser erhalten Sie im Ausgabeordner extrahierte Ereignisvorlagen und geparste strukturierte Logs.

    + `*_templates.csv` (Siehe Beispiel [HDFS_2k.log_templates.csv](https://github.com/logpai/logparser/blob/main/logparser/Drain/demo_result/HDFS_2k.log_templates.csv))
    
        | EventId  | EventTemplate                                  | Occurrences |
        |----------|------------------------------------------------|-------------|
        | dc2c74b7 | PacketResponder <*> for block <*> terminating                                    | 311 |
        | e3df2680 | Received block <*> of size <*> from <*>                                          | 292 |
        | 09a53393 | Receiving block <*> src: <*> dest: <*>                                           | 292 |

    + `*_structured.csv` (Siehe Beispiel [HDFS_2k.log_structured.csv](https://github.com/logpai/logparser/blob/main/logparser/Drain/demo_result/HDFS_2k.log_structured.csv))
    
        | ... | Level | Content                                                                                       | EventId  | EventTemplate                                                       | ParameterList                              |
        |-----|-------|-----------------------------------------------------------------------------------------------|----------|---------------------------------------------------------------------|--------------------------------------------|
        | ... | INFO  | PacketResponder 1 for block blk_38865049064139660 terminating | dc2c74b7 | PacketResponder <*> for block <*> terminating | ['1', 'blk_38865049064139660'] |
        | ... | INFO  | Received block blk_3587508140051953248 of size 67108864 from /10.251.42.84                              | e3df2680 | Received block <*> of size <*> from <*>  | ['blk_3587508140051953248', '67108864', '/10.251.42.84']                                     |
        | ... | INFO  | Verification succeeded for blk_-4980916519894289629    | 32777b38 | Verification succeeded for <*> |  ['blk_-4980916519894289629']   |


### Produktionseinsatz
Der Hauptzweck von logparser ist die Verwendung zu Forschungs- und Benchmark-Zwecken. Forscher können logparser als Codebasis verwenden, um neue Log-Parser zu entwickeln, während Praktiker die Leistung und Skalierbarkeit aktueller Log-Parsing-Methoden anhand unserer Benchmarks bewerten können. Wir empfehlen Praktikern ausdrücklich, logparser in Ihrer Produktionsumgebung auszuprobieren. Beachten Sie jedoch, dass die derzeitige Implementierung von logparser noch lange nicht für den Produktionseinsatz bereit ist. Wir haben zwar derzeit keinen Plan, dies zu ändern, aber wir haben einige Vorschläge für Entwickler, die einen intelligenten Log-Parser auf Produktionsniveau entwickeln möchten.

+ Bitte beachten Sie die [Lizenzen der Drittanbieter-Bibliotheken](https://github.com/logpai/logparser/blob/main/LICENSE.md), die in logparser verwendet werden. Wir empfehlen, einen Parser zu behalten und die anderen zu löschen und anschließend das Paket-Wheel neu zu erstellen. Dies würde die Verwendung von logparser nicht beeinträchtigen.
+ Bitte verbessern Sie logparser hinsichtlich Effizienz und Skalierbarkeit durch Multiprocessing, ergänzen Sie eine Fehlerwiederherstellung und eine Persistierung auf der Festplatte oder in der Message-Queue Kafka.
+ [Drain3](https://github.com/logpai/Drain3) ist ein gutes Referenzbeispiel, das mit [praktischen Verbesserungen](https://github.com/logpai/Drain3#new-features) für Produktionsszenarien entwickelt wurde.

### 🔥 Zitieren
Wenn Sie unsere logparser-Werkzeuge oder Benchmark-Ergebnisse in Ihrer Publikation verwenden, zitieren Sie bitte die folgenden Arbeiten.

+ [**ICSE'19**] Jieming Zhu, Shilin He, Jinyang Liu, Pinjia He, Qi Xie, Zibin Zheng, Michael R. Lyu. [Tools and Benchmarks for Automated Log Parsing](https://arxiv.org/pdf/1811.03509.pdf). *International Conference on Software Engineering (ICSE)*, 2019.
+ [**DSN'16**] Pinjia He, Jieming Zhu, Shilin He, Jian Li, Michael R. Lyu. [An Evaluation Study on Log Parsing and Its Use in Log Mining](https://jiemingzhu.github.io/pub/pjhe_dsn2016.pdf). *IEEE/IFIP International Conference on Dependable Systems and Networks (DSN)*, 2016.


### 🤗 Mitwirkende

<!-- readme: zhujiem,contributors -start -->
<table>
	<tbody>
		<tr>
            <td align="center">
                <a href="https://github.com/zhujiem">
                    <img src="https://assets.kitploit.com/production/public/readmes/51023/471767126e4450e42b40b8e3f5437c2d9d0616f468675dde6feccac1976b18d0/ee334336551226b1483445bee71089fdf5e61115652a2a99375e54566f34c9bf-display-v1.webp" width="80;" alt="zhujiem"/>
                    <br />
                    <sub><b>Zhujiem</b></sub>
                </a>
            </td>
            <td align="center">
                <a href="https://github.com/PinjiaHe">
                    <img src="https://assets.kitploit.com/production/public/readmes/51023/e9f83f96ab3d84e92152317c8d85d54a12fb0b0baea267d29e7d317a5caff94b/5b4a6af1bda6245edbb5c40ea1467625828536aeb88e984716753945b6235da2-display-v1.webp" width="80;" alt="PinjiaHe"/>
                    <br />
                    <sub><b>Pinjia He</b></sub>
                </a>
            </td>
            <td align="center">
                <a href="https://github.com/JinYang88">
                    <img src="https://assets.kitploit.com/production/public/readmes/51023/7785c7974d5753fa21792097907be1e20efb5fc5bbf3aba61b0b4d2f4fe26fec/19a47a39c4db07a8a052ed05304e166cca4cf18683d89a1400688c576ae48b52-display-v1.webp" width="80;" alt="JinYang88"/>
                    <br />
                    <sub><b>LIU, Jinyang</b></sub>
                </a>
            </td>
            <td align="center">
                <a href="https://github.com/Siyuexi">
                    <img src="https://assets.kitploit.com/production/public/readmes/51023/fe7de7203a407b36e2f44a57603594e01266d124ef558b53cb95ba28afc6127c/f7a7173a142ced37b910b650e3ad957b27fcf2f13f4c828ff6a72fb87111435f-display-v1.webp" width="80;" alt="Siyuexi"/>
                    <br />
                    <sub><b>Junjielong Xu</b></sub>
                </a>
            </td>
            <td align="center">
                <a href="https://github.com/ShilinHe">
                    <img src="https://assets.kitploit.com/production/public/readmes/51023/c8b37cadfeb622c955b807776ab0fa19f058c8ad512ebb22eb98c79ad5e90c17/fc476296c1b1aa6b1dd7c3220a81a1b70838d5c113a65e6b2f98196d0615b8a3-display-v1.webp" width="80;" alt="ShilinHe"/>
                    <br />
                    <sub><b>Shilin HE</b></sub>
                </a>
            </td>
            <td align="center">
                <a href="https://github.com/JosephMeghanathD">
                    <img src="https://assets.kitploit.com/production/public/readmes/51023/c2036c74a3116c7de955cae32687ffae61d8be46868cbcc61f771a7e9be4fa33/011ea30ec30f0db362d75632b310850b2783bd2c2428dfee7dc0fff182dc1bf8-display-v1.webp" width="80;" alt="JosephMeghanathD"/>
                    <br />
                    <sub><b>Joseph</b></sub>
                </a>
            </td>
		</tr>
		<tr>
            <td align="center">
                <a href="https://github.com/jcordon5">
                    <img src="https://assets.kitploit.com/production/public/readmes/51023/a4f67dd9f820a1dc763ae05e6d66ec6418d7e70abad8a9b5906413ab909f709e/4c8dc9fc08525d6d3c2334983160c0c9a48077fcc22b3498fe658aa133a2da02-display-v1.webp" width="80;" alt="jcordon5"/>
                    <br />
                    <sub><b>José A. Cordón </b></sub>
                </a>
            </td>
            <td align="center">
                <a href="https://github.com/rustamtemirov">
                    <img src="https://assets.kitploit.com/production/public/readmes/51023/3690f9e2cd318e8555a586fb32e221080e59e5de8917d82584da1f69e00be8cc/95300504879ab023f96e1cd73ca726c6720367b23e0d476e9a0b6cc23b89ff4d-display-v1.webp" width="80;" alt="rustamtemirov"/>
                    <br />
                    <sub><b>Rustam Temirov</b></sub>
                </a>
            </td>
            <td align="center">
                <a href="https://github.com/gaiusyu">
                    <img src="https://assets.kitploit.com/production/public/readmes/51023/68c5eeea49f8a2ee2cd39b633ed1fb9765cde38399b12636dea0a3dd0920c86d/8faa00619c5b17d96e80dff1b124695997ece681c0931519346fa0e62407c578-display-v1.webp" width="80;" alt="gaiusyu"/>
                    <br />
                    <sub><b>Siyu Yu (Youth Yu)</b></sub>
                </a>
            </td>
            <td align="center">
                <a href="https://github.com/thomasryck">
                    <img src="https://assets.kitploit.com/production/public/readmes/51023/ad3710fbbe7106ffe560fe918f87e77a95a6bf7a21dbf65827f93138c96aca5a/ed736bf9ffd9aa54686cc7a3d404f7c0072ecaced2403ff467d112482255c2b3-display-v1.webp" width="80;" alt="thomasryck"/>
                    <br />
                    <sub><b>Thomas Ryckeboer</b></sub>
                </a>
            </td>
            <td align="center">
                <a href="https://github.com/IsuruBoyagane15">
                    <img src="https://assets.kitploit.com/production/public/readmes/51023/dca9ea34301dd9441404246eb535a39d034518fd1311bebd68f1725bc38ba6b3/57b77cdaafca63553a32d53d83f1859d971c1628ef640c36ab1125939bb43a00-display-v1.webp" width="80;" alt="IsuruBoyagane15"/>
                    <br />
                    <sub><b>Isuru Boyagane</b></sub>
                </a>
            </td>
		</tr>
	<tbody>
</table>
<!-- readme: zhujiem,contributors -end -->

### Diskussion
Wir laden Sie ein, unserer WeChat-Gruppe beizutreten, wenn Sie Fragen haben oder diskutieren möchten. Alternativ können Sie [hier ein Issue eröffnen](https://github.com/logpai/logparser/issues/new).

![QR-Code scannen](https://assets.kitploit.com/production/public/readmes/51023/e24368b6c3ac236c9d073056856dc551521ef5ae785e34bdd33a6f49ef39f858/fdfe0ff4a0fd0c03d5d5bbcdec2e2922c75537e138f44fc105292f1f8fa90ea8-display-v1.webp)
Tool herunterladen
PublikationParserPaper-TitelBenchmark
IPOM'03SLCTEin Daten-Clustering-Algorithmus zur Musterextraktion aus Ereignisprotokollen, von Risto Vaarandi.↗️
QSIC'08AELAbstraktion von Ausführungsprotokollen zu Ausführungsereignissen für Unternehmensanwendungen, von Zhen Ming Jiang, Ahmed E. Hassan, Parminder Flora, Gilbert Hamann.↗️
KDD'09IPLoMClustering von Ereignisprotokollen mittels iterativer Partitionierung, von Adetokunbo Makanju, A. Nur Zincir-Heywood, Evangelos E. Milios.↗️
ICDM'09LKEErkennung von Ausführungsanomalien in verteilten Systemen durch unstrukturierte Log-Analyse, von Qiang Fu, Jian-Guang Lou, Yi Wang, Jiang Li. [Microsoft]↗️
MSR'10LFAAbstraktion von Logzeilen zu Log-Ereignistypen für das Mining von Software-Systemprotokollen, von Meiyappan Nagappan, Mladen A. Vouk.↗️
CIKM'11LogSigLogSig: Generierung von Systemereignissen aus rohen Text-Logs, von Liang Tang, Tao Li, Chang-Shing Perng.↗️
SCC'13SHISOInkrementelles Mining des Systemlog-Formats, von Masayoshi Mizutani.↗️
CNSM'15LogClusterLogCluster - Ein Daten-Clustering- und Muster-Mining-Algorithmus für Ereignisprotokolle, von Risto Vaarandi, Mauno Pihelgas.↗️
CNSM'15LenMaLänge ist wichtig: Clustering von System-Lognachrichten anhand der Wortlänge, von Keiichi Shima.↗️
CIKM'16LogMineLogMine: Schnelle Mustererkennung für die Log-Analyse, von Hossein Hamooni, Biplob Debnath, Jianwu Xu, Hui Zhang, Geoff Jiang, Adbullah Mueen. [NEC]↗️
ICDM'16SpellSpell: Streaming-Parsing von System-Ereignisprotokollen, von Min Du, Feifei Li.↗️
ICWS'17DrainDrain: Ein Online-Ansatz zum Log-Parsing mit Baum fester Tiefe, von Pinjia He, Jieming Zhu, Zibin Zheng und Michael R. Lyu.↗️
ICPC'18MoLFIEin suchbasierter Ansatz zur genauen Identifizierung von Lognachrichtenformaten, von Salma Messaoudi, Annibale Panichella, Domenico Bianculli, Lionel Briand, Raimondas Sasnauskas.↗️
TSE'20LogramLogram: Effizientes Log-Parsing mit n-Gramm-Wörterbüchern, von Hetong Dai, Heng Li, Che-Shao Chen, Weiyi Shang und Tse-Hsun (Peter) Chen.↗️
ECML-PKDD'20NuLogSelbstüberwachtes Log-Parsing, von Sasho Nedelkoski, Jasmin Bogatinovski, Alexander Acker, Jorge Cardoso, Odej Kao.↗️
ICSME'22ULPEin effektiver Ansatz zum Parsen großer Logdateien, von Issam Sedki, Abdelwahab Hamou-Lhadj, Otmane Ait-Mohamed, Mohammed A. Shehab.↗️
TSC'23BrainBrain: Log-Parsing mit bidirektionalem parallelem Baum, von Siyu Yu, Pinjia He, Ningjiang Chen, Yifan Wu.↗️
ICSE'24DivLogDivLog: Log-Parsing mit Prompt-verbessertem In-Context-Lernen, von Junjielong Xu, Ruichun Yang, Yintong Huo, Chengyu Zhang und Pinjia He.↗️