Skip to main content

A system log management tool with automatically generated log templates.

Project description

PyPI release Python support BSD 3-Clause License Travis CI

Amulog is a tool to support system log management. The main function is to classify log messages with automatically generated log templates (formats and variable locations), and to store the data in a database. This system works on python3.

Main features

  • Support multiple databases: sqlite and mysql

  • Smart log segmentation with log2seq

  • Multiple template generation algorithms such as: Drain, SHISO, LenMa, FT-tree, Dlog, etc.

  • Support Online (incremental) and Offline (hindsight) use

  • Suspend and resume the template generation process

  • Import and Export log templates if you need

  • Edit log templates manually if you need

  • Search API with datetime, hostname and log template IDs

Tutorial

Install

$ pip install amulog

Generate config

For the first step, save following config as test.conf on an empty directory.

[general]
src_path = logfile.txt
src_recur = false
logging = auto.log

[database]
database = sqlite3
sqlite3_filename = log.db

[log_template]
lt_methods = drain
indata_filename = ltgen.dump

Then modify general.src_path option to a logfile you want to load. (If you want to use multiple files, change general.src_recur into true and specify directory name to general.src_path.)

Generate database

Try following command to generate database:

$ python -m amulog db-make -c test.conf

Check database

$ python -m amulog show-db-info -c test.conf

shows status of the generated database.

$ python -m amulog show-lt -c test.conf

shows all generated log templates in the given logfile.

$ python -m amulog show-log -c test.conf ltid=2

shows all log messages corresponding to log template ID 2.

Resume generating database

Try following command to resume generating database:

$ python -m amulog db-add -c test.conf logfile2.txt

Export and Import templates

Following command exports all log templates in the database:

$ python3 -m amulog show-lt-import -c test.conf > exported_tpl.txt

You can modify the exported templates manually. Note that some special letters (\\, @, *) are escaped in the exported templates.

To import the templates, save following config as test2.conf.

[general]
src_path = logfile.txt
src_recur = false
logging = new_auto.log

[database]
database = sqlite3
sqlite3_filename = new_log.db

[log_template]
lt_methods = import
indata_filename = new_ltgen.dump

[log_template_import]
def_path = exported_tpl.txt

Then, try generating database again:

python -m amulog db-make -c test2.conf

Using your data

Parsing your data

Amulog uses log2seq to parse input log messages in DB generation. If your data is not a default syslog output format, you need to specify an appropriate log2seq parser script. The log2seq parser script is specified in manager.parser_script in amulog config file.

[manager]
parser_script = test_parser.py
fail_output = fail.log

If the parser fails to parse some of the input log messages, they are stored in manager.fail_output file. You can check this file to test whether the parser is working appropriately or not.

There are example parser scripts in log2seq repository.

Further usage

see help with following command:

python -m amulog -h

Reference

This tool is demonstrated at International Journal of Network Management and CNSM2020.

If you use this code, please consider citing:

@article{Kobayashi_IJNM2022,
  author = {Kobayashi, Satoru and Yamashiro, Yuya and Otomo, Kazuki and Fukuda, Kensuke},
  title = {amulog: A general log analysis framework for comparison and combination of diverse template generation methods*},
  journal = {International Journal of Network Management},
  volume = {32},
  number = {4},
  pages = {e2195},
  doi = {https://doi.org/10.1002/nem.2195},
  year = {2022}
}

@inproceedings{Kobayashi_CNSM2020,
  author = {Kobayashi, Satoru and Yamashiro, Yuya and Otomo, Kazuki and Fukuda, Kensuke},
  booktitle = {Proceedings of the 16th International Conference on Network and Service Management (CNSM'20)},
  title = {amulog: A General Log Analysis Framework for Diverse Template Generation Methods},
  pages={1-5},
  year = {2020}
}

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

amulog-0.3.14.tar.gz (116.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

amulog-0.3.14-py3-none-any.whl (143.1 kB view details)

Uploaded Python 3

File details

Details for the file amulog-0.3.14.tar.gz.

File metadata

  • Download URL: amulog-0.3.14.tar.gz
  • Upload date:
  • Size: 116.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for amulog-0.3.14.tar.gz
Algorithm Hash digest
SHA256 113774e9b2da939f8402a622c65c5bd1a530b7c4d4231a588eb23d8076960c51
MD5 6df04101d60fa21e0281c5350be3739b
BLAKE2b-256 202bc8be829a33aa3becb8266cc7560a7e96830442b41cc7aa829e5b9a4ccc50

See more details on using hashes here.

Provenance

The following attestation bundles were made for amulog-0.3.14.tar.gz:

Publisher: publish.yml on amulog/amulog

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file amulog-0.3.14-py3-none-any.whl.

File metadata

  • Download URL: amulog-0.3.14-py3-none-any.whl
  • Upload date:
  • Size: 143.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for amulog-0.3.14-py3-none-any.whl
Algorithm Hash digest
SHA256 321d7ed1195f17e7d6b38cec80ff9fe5f6cbfedf43586b8af7c22cbc82aa72cc
MD5 329b0ee40cfc3c9f904b58656cdbf604
BLAKE2b-256 fc05f1a1c552013bc49168f841a30083288486366f4ee9d0a63a53f783a3016a

See more details on using hashes here.

Provenance

The following attestation bundles were made for amulog-0.3.14-py3-none-any.whl:

Publisher: publish.yml on amulog/amulog

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page