Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
logparser — Une boîte à outils d'apprentissage automatique pour le parsing de logs [ICSE'19, DSN'16] | Kitploit
Outils/GitHubGitHub/logpai/logparser
Apprentissage AutomatiqueArticles et RechercheDétection d'AnomaliesAnalyse de Journaux
GitHublogpai/logparser

logparser

Une boîte à outils d'apprentissage automatique pour le parsing de logs [ICSE'19, DSN'16]

Voir le dépôt
2.0k579il y a 1 anVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

Logparser

Python version Pypi version Pypi version Downloads License

Logparser fournit une boîte à outils d'apprentissage automatique et des références (benchmarks) pour l'analyse automatique de journaux, une étape cruciale pour l'analytique structurée des journaux. En appliquant logparser, les utilisateurs peuvent extraire automatiquement des modèles d'événements à partir de journaux non structurés et convertir les messages de journal bruts en une séquence d'événements structurés. Le processus d'analyse de journaux est également connu sous le nom d'extraction de modèles de messages, d'extraction de clés de journal ou de regroupement de messages de journal dans la littérature.


Un exemple d'analyse de journaux

🌈 Nouvelles mises à jour

  • Depuis la première version de logparser, de nombreuses PR et issues ont été soumises en raison d'une incompatibilité avec Python 3. Finalement, nous mettons à jour logparser v1.0.0 avec le support de Python 3. Merci pour toutes les contributions (#PR86, #PR85, #PR83, #PR80, #PR65, #PR57, #PR53, #PR52, #PR51, #PR49, #PR18, #PR22) !
  • Nous construisons le wheel du paquet logparser3 et le publions sur pypi. Veuillez l'installer via pip install logparser3.
  • Nous refactorisons la structure du code et embellissons le code via le formateur de code Python black.

Analyseurs de journaux disponibles :

💡 N'hésitez pas à soumettre une PR pour intégrer votre analyseur à logparser et ajouter votre article au tableau.

Installation

Nous recommandons d'installer le paquet logparser et ses dépendances via pip install.``` pip install logparser3

root@kitploit:~
En particulier, le paquet dépend des exigences suivantes. Notez que la correspondance regex en Python est fragile, nous vous recommandons donc de fixer la bibliothèque regex à la version 2022.3.2.

Note : Si vous rencontrez ``"Error: need to escape..."``, veuillez suivre les instructions [ici](https://github.com/logpai/logparser/issues/122).

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

Exigences conditionnelles :

+ Si vous utilisez MoLFI : `deap`
+ Si vous utilisez SHISO : `nltk`
+ Si vous utilisez SLCT : `gcc`
+ Si vous utilisez LogCluster : `perl`
+ Si vous utilisez NuLog : `torch`, `torchvision`, `keras_preprocessing`
+ Si vous utilisez DivLog : `openai`, `tiktoken` (nécessite python 3.8+)

### Pour commencer

1. Exécutez la démo :

    Pour chaque analyseur de logs, nous fournissons une démo pour vous aider à démarrer. Chaque démo montre l'utilisation de base d'un analyseur de logs cible et les hyper-paramètres à configurer. Par exemple, la commande suivante montre comment exécuter la démo pour Drain.

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

2. Exécutez le benchmark :

    Pour chaque analyseur de logs, nous fournissons un script de benchmark pour exécuter l'analyse de logs sur les [jeux de données loghub_2k](https://github.com/logpai/logparser/tree/main/data#loghub_2k) afin d'évaluer la précision de l'analyse. Vous pouvez également utiliser [d'autres jeux de données de benchmark pour l'analyse de logs](https://github.com/logpai/logparser/tree/main/data#datasets).

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

    Les résultats du benchmark se trouvent dans le fichier readme de chaque analyseur, par exemple https://github.com/logpai/logparser/tree/main/logparser/Drain#benchmark.

3. Analysez vos propres logs :

    Il est facile d'utiliser logparser pour analyser vos propres données de logs. Pour ce faire, vous devez d'abord installer le paquet logparser3. Ensuite, vous pouvez développer votre propre script en suivant l'extrait de code ci-dessous pour démarrer l'analyse de logs. Voir le code d'exemple complet sur [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)
    ```

    Après avoir exécuté logparser, vous pouvez obtenir les modèles d'événements extraits et les logs structurés analysés dans le dossier de sortie.

    + `*_templates.csv` (Voir l'exemple [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` (Voir l'exemple [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']   |


### Utilisation en production
L'objectif principal de logparser est de servir à la recherche et aux benchmarks. Les chercheurs peuvent utiliser logparser comme base de code pour développer de nouveaux analyseurs de logs, tandis que les praticiens peuvent évaluer les performances et l'évolutivité des méthodes actuelles d'analyse de logs grâce à nos benchmarks. Nous recommandons vivement aux praticiens d'essayer logparser dans votre environnement de production. Mais sachez que l'implémentation actuelle de logparser est loin d'être prête pour une utilisation en production. Bien que nous n'ayons actuellement aucun plan pour cela, nous avons quelques suggestions pour les développeurs qui souhaitent créer un analyseur de logs intelligent de niveau production.

+ Veuillez être conscient des [licences des bibliothèques tierces](https://github.com/logpai/logparser/blob/main/LICENSE.md) utilisées dans logparser. Nous suggérons de conserver un analyseur et de supprimer les autres, puis de reconstruire la wheel du paquet. Cela ne cassera pas l'utilisation de logparser.
+ Veuillez améliorer logparser en termes d'efficacité et d'évolutivité avec le multi-traitement, ajouter la reprise après échec, ajouter la persistance sur disque ou sur la file de messages Kafka.
+ [Drain3](https://github.com/logpai/Drain3) fournit un bon exemple de référence, construit avec des [améliorations pratiques](https://github.com/logpai/Drain3#new-features) pour les scénarios de production.

### 🔥 Citation
Si vous utilisez nos outils logparser ou les résultats de nos benchmarks dans vos publications, veuillez citer les articles suivants.

+ [**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.


### 🤗 Contributeurs

<!-- 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 -->

### Discussion
Bienvenue dans notre groupe WeChat pour toute question ou discussion. Vous pouvez également [ouvrir une issue ici](https://github.com/logpai/logparser/issues/new).

![Scan QR code](https://assets.kitploit.com/production/public/readmes/51023/e24368b6c3ac236c9d073056856dc551521ef5ae785e34bdd33a6f49ef39f858/fdfe0ff4a0fd0c03d5d5bbcdec2e2922c75537e138f44fc105292f1f8fa90ea8-display-v1.webp)
Télécharger l’outil
PublicationParserTitre de l'articleBenchmark
IPOM'03SLCTUn algorithme de regroupement de données pour l'extraction de motifs à partir de journaux d'événements, par Risto Vaarandi.↗️
QSIC'08AELAbstraction des journaux d'exécution en événements d'exécution pour les applications d'entreprise, par Zhen Ming Jiang, Ahmed E. Hassan, Parminder Flora, Gilbert Hamann.↗️
KDD'09IPLoMRegroupement de journaux d'événements par partitionnement itératif, par Adetokunbo Makanju, A. Nur Zincir-Heywood, Evangelos E. Milios.↗️
ICDM'09LKEDétection d'anomalies d'exécution dans les systèmes distribués grâce à l'analyse de journaux non structurés, par Qiang Fu, Jian-Guang Lou, Yi Wang, Jiang Li. [Microsoft]↗️
MSR'10LFAAbstraction des lignes de journal en types d'événements de journal pour la fouille des journaux de systèmes logiciels, par Meiyappan Nagappan, Mladen A. Vouk.↗️
CIKM'11LogSigLogSig: Génération d'événements système à partir de journaux textuels bruts, par Liang Tang, Tao Li, Chang-Shing Perng.↗️
SCC'13SHISOExploration incrémentale du format des journaux système, par Masayoshi Mizutani.↗️
CNSM'15LogClusterLogCluster - Un algorithme de regroupement de données et d'extraction de motifs pour les journaux d'événements, par Risto Vaarandi, Mauno Pihelgas.↗️
CNSM'15LenMaLa longueur compte : regroupement des messages de journaux système en fonction de la longueur des mots, par Keiichi Shima.↗️
CIKM'16LogMineLogMine: Reconnaissance rapide de motifs pour l'analyse de journaux, par Hossein Hamooni, Biplob Debnath, Jianwu Xu, Hui Zhang, Geoff Jiang, Adbullah Mueen. [NEC]↗️
ICDM'16SpellSpell: Analyse en flux des journaux d'événements système, par Min Du, Feifei Li.↗️
ICWS'17DrainDrain: Une approche d'analyse de journaux en ligne avec un arbre de profondeur fixe, par Pinjia He, Jieming Zhu, Zibin Zheng, et Michael R. Lyu.↗️
ICPC'18MoLFIUne approche basée sur la recherche pour l'identification précise des formats de messages de journal, par Salma Messaoudi, Annibale Panichella, Domenico Bianculli, Lionel Briand, Raimondas Sasnauskas.↗️
TSE'20LogramLogram: Analyse efficace de journaux à l'aide de dictionnaires de n-grammes, par Hetong Dai, Heng Li, Che-Shao Chen, Weiyi Shang, et Tse-Hsun (Peter) Chen.↗️
ECML-PKDD'20NuLogAnalyse de journaux auto-supervisée, par Sasho Nedelkoski, Jasmin Bogatinovski, Alexander Acker, Jorge Cardoso, Odej Kao.↗️
ICSME'22ULPUne approche efficace pour l'analyse de grands fichiers de journaux, par Issam Sedki, Abdelwahab Hamou-Lhadj, Otmane Ait-Mohamed, Mohammed A. Shehab.↗️
TSC'23BrainBrain: Analyse de journaux avec un arbre parallèle bidirectionnel, par Siyu Yu, Pinjia He, Ningjiang Chen, Yifan Wu.↗️
ICSE'24DivLogDivLog: Analyse de journaux avec apprentissage contextuel amélioré par prompts, par Junjielong Xu, Ruichun Yang, Yintong Huo, Chengyu Zhang, et Pinjia He.↗️