Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
logparser — Un kit de herramientas de aprendizaje automático para el análisis de logs [ICSE'19, DSN'16] | Kitploit
Herramientas/GitHubGitHub/logpai/logparser
Aprendizaje AutomáticoPapers e InvestigaciónDetección de AnomalíasAnálisis de Registros
GitHublogpai/logparser

logparser

Un kit de herramientas de aprendizaje automático para el análisis de logs [ICSE'19, DSN'16]

Ver Repositorio
2.0k579hace 1 añoRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

Logparser

Python version Pypi version Pypi version Downloads License

Logparser ofrece un conjunto de herramientas de aprendizaje automático y benchmarks para el parseo automático de logs, un paso crucial para el análisis estructurado de logs. Al aplicar logparser, los usuarios pueden extraer automáticamente plantillas de eventos de logs no estructurados y convertir los mensajes de log sin procesar en una secuencia de eventos estructurados. Este proceso también se conoce en la literatura como extracción de plantillas de mensajes, extracción de claves de log o agrupación de mensajes de log.


Un ejemplo de parseo de logs

🌈 Novedades

  • Desde la primera versión de logparser, se han enviado muchos PRs e issues debido a la incompatibilidad con Python 3. Finalmente, actualizamos logparser v1.0.0 con soporte para Python 3. ¡Gracias por todas las contribuciones (#PR86, #PR85, #PR83, #PR80, #PR65, #PR57, #PR53, #PR52, #PR51, #PR49, #PR18, #PR22)!
  • Creamos el paquete wheel logparser3 y lo publicamos en pypi. Por favor, instálalo mediante pip install logparser3.
  • Refactorizamos la estructura del código y embellecemos el código con el formateador de código Python black.

Parsers de logs disponibles:

💡 Te invitamos a enviar un PR para incorporar tu código de parser a logparser y añadir tu artículo a la tabla.

Instalación

Recomendamos instalar el paquete logparser y sus dependencias mediante pip install.``` pip install logparser3

root@kitploit:~
En particular, el paquete depende de los siguientes requisitos. Ten en cuenta que la coincidencia de expresiones regulares en Python es frágil, por lo que recomendamos fijar la biblioteca regex en la versión 2022.3.2.

Nota: Si te encuentras con ``"Error: need to escape..."``, sigue las instrucciones [aquí](https://github.com/logpai/logparser/issues/122).

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

Requisitos condicionales:

+ Si usas MoLFI: `deap`
+ Si usas SHISO: `nltk`
+ Si usas SLCT: `gcc`
+ Si usas LogCluster: `perl`
+ Si usas NuLog: `torch`, `torchvision`, `keras_preprocessing`
+ Si usas DivLog: `openai`, `tiktoken` (requieren python 3.8+)

### Primeros pasos

1. Ejecuta la demo:

    Para cada analizador de logs, proporcionamos una demo para ayudarte a empezar. Cada demo muestra el uso básico de un analizador de logs específico y los hiperparámetros a configurar. Por ejemplo, el siguiente comando muestra cómo ejecutar la demo para Drain.

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

2. Ejecuta el benchmark:

    Para cada analizador de logs, proporcionamos un script de benchmark para ejecutar el análisis de logs en los [datasets loghub_2k](https://github.com/logpai/logparser/tree/main/data#loghub_2k) con el fin de evaluar la precisión del análisis. También puedes usar [otros datasets de benchmark para el análisis de logs](https://github.com/logpai/logparser/tree/main/data#datasets).

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

    Los resultados del benchmark se pueden encontrar en el archivo readme de cada analizador, p. ej., https://github.com/logpai/logparser/tree/main/logparser/Drain#benchmark.

3. Analiza tus propios logs:

    Es fácil aplicar logparser para analizar tus propios datos de logs. Para ello, primero debes instalar el paquete logparser3. Luego puedes desarrollar tu propio script siguiendo el siguiente fragmento de código para comenzar el análisis de logs. Consulta el código de ejemplo completo en [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)
    ```

    Después de ejecutar logparser, puedes obtener las plantillas de eventos extraídas y los logs estructurados analizados en la carpeta de salida.

    + `*_templates.csv` (Consulta el ejemplo [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` (Consulta el ejemplo [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']   |


### Uso en producción
El objetivo principal de logparser es el uso con fines de investigación y benchmark. Los investigadores pueden usar logparser como base de código para desarrollar nuevos analizadores de logs, mientras que los profesionales pueden evaluar el rendimiento y la escalabilidad de los métodos actuales de análisis de logs a través de nuestro benchmark. Recomendamos encarecidamente a los profesionales que prueben logparser en su entorno de producción. Pero ten en cuenta que la implementación actual de logparser está lejos de estar lista para su uso en producción. Aunque actualmente no tenemos planes de hacerlo, sí tenemos algunas sugerencias para los desarrolladores que quieran construir un analizador de logs inteligente de nivel de producción.

+ Ten en cuenta las [licencias de bibliotecas de terceros](https://github.com/logpai/logparser/blob/main/LICENSE.md) utilizadas en logparser. Sugerimos conservar un solo analizador y eliminar los demás, y luego reconstruir el wheel del paquete. Esto no rompe el uso de logparser.
+ Mejora logparser en cuanto a eficiencia y escalabilidad con multiprocesamiento, añade recuperación de fallos y añade persistencia en disco o en la cola de mensajes Kafka.
+ [Drain3](https://github.com/logpai/Drain3) proporciona un buen ejemplo de referencia que se ha construido con [mejoras prácticas](https://github.com/logpai/Drain3#new-features) para escenarios de producción.

### 🔥 Citación
Si utilizas nuestras herramientas logparser o los resultados del benchmark en tu publicación, cita los siguientes artículos.

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


### 🤗 Colaboradores

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

### Discusión
Te invitamos a unirte a nuestro grupo de WeChat para cualquier pregunta o discusión. Alternativamente, puedes [abrir un issue aquí](https://github.com/logpai/logparser/issues/new).

![Escanea el código QR](https://assets.kitploit.com/production/public/readmes/51023/e24368b6c3ac236c9d073056856dc551521ef5ae785e34bdd33a6f49ef39f858/fdfe0ff4a0fd0c03d5d5bbcdec2e2922c75537e138f44fc105292f1f8fa90ea8-display-v1.webp)
Descargar herramienta
PublicaciónParserTítulo del artículoBenchmark
IPOM'03SLCTA Data Clustering Algorithm for Mining Patterns from Event Logs, por Risto Vaarandi.↗️
QSIC'08AELAbstracting Execution Logs to Execution Events for Enterprise Applications, por Zhen Ming Jiang, Ahmed E. Hassan, Parminder Flora, Gilbert Hamann.↗️
KDD'09IPLoMClustering Event Logs Using Iterative Partitioning, por Adetokunbo Makanju, A. Nur Zincir-Heywood y Evangelos E. Milios.↗️
ICDM'09LKEExecution Anomaly Detection in Distributed Systems through Unstructured Log Analysis, por Qiang Fu, Jian-Guang Lou, Yi Wang, Jiang Li. [Microsoft]↗️
MSR'10LFAAbstracting Log Lines to Log Event Types for Mining Software System Logs, por Meiyappan Nagappan y Mladen A. Vouk.↗️
CIKM'11LogSigLogSig: Generating System Events from Raw Textual Logs, por Liang Tang, Tao Li y Chang-Shing Perng.↗️
SCC'13SHISOIncremental Mining of System Log Format, por Masayoshi Mizutani.↗️
CNSM'15LogClusterLogCluster - A Data Clustering and Pattern Mining Algorithm for Event Logs, por Risto Vaarandi y Mauno Pihelgas.↗️
CNSM'15LenMaLength Matters: Clustering System Log Messages using Length of Words, por Keiichi Shima.↗️
CIKM'16LogMineLogMine: Fast Pattern Recognition for Log Analytics, por Hossein Hamooni, Biplob Debnath, Jianwu Xu, Hui Zhang, Geoff Jiang y Adbullah Mueen. [NEC]↗️
ICDM'16SpellSpell: Streaming Parsing of System Event Logs, por Min Du y Feifei Li.↗️
ICWS'17DrainDrain: An Online Log Parsing Approach with Fixed Depth Tree, por Pinjia He, Jieming Zhu, Zibin Zheng y Michael R. Lyu.↗️
ICPC'18MoLFIA Search-based Approach for Accurate Identification of Log Message Formats, por Salma Messaoudi, Annibale Panichella, Domenico Bianculli, Lionel Briand y Raimondas Sasnauskas.↗️
TSE'20LogramLogram: Efficient Log Parsing Using n-Gram Dictionaries, por Hetong Dai, Heng Li, Che-Shao Chen, Weiyi Shang y Tse-Hsun (Peter) Chen.↗️
ECML-PKDD'20NuLogSelf-Supervised Log Parsing, por Sasho Nedelkoski, Jasmin Bogatinovski, Alexander Acker, Jorge Cardoso y Odej Kao.↗️
ICSME'22ULPAn Effective Approach for Parsing Large Log Files, por Issam Sedki, Abdelwahab Hamou-Lhadj, Otmane Ait-Mohamed y Mohammed A. Shehab.↗️
TSC'23BrainBrain: Log Parsing with Bidirectional Parallel Tree, por Siyu Yu, Pinjia He, Ningjiang Chen y Yifan Wu.↗️
ICSE'24DivLogDivLog: Log Parsing with Prompt Enhanced In-Context Learning, por Junjielong Xu, Ruichun Yang, Yintong Huo, Chengyu Zhang y Pinjia He.↗️