Skip to main content

Logstash command line query tool, a bit like tail for Logstash/ElasticSearch

Project description

Lstail

PyPI Documentation Status Python Versions License

A command line tool to query log events from ElasticSearch, a bit like tail for Logstash/ElasticSearch.

Lstail queries ElasticSearch for log events and displays them on the terminal. Saved Searches from Kibana can be used for quick access to filters and prepared column configuration. For more details and usage examples please see the documentation at https://lstail.org/.

Features

  • Follow mode like in tail -f
  • CSV output / export
  • Can read Saved Searches from ElasticSearch and use their filters and column setup
  • Flexible configurable output of columns, colors and padding
  • Can be proxied through Kibana if not direct ElasticSearch connection is possible
  • Works with ElasticSearch 2.x - 7.x
  • Made with Python and love

lstail usage demonstration

Installation

Lstail requires Python 3.9 or newer. The easiest method is to install directly from pypi using pip:

pip install lstail

If you prefer, you can download lstail and install it directly from source:

python setup.py install

Get the Source

The source code is available at https://github.com/eht16/lstail/.

Setup

Before using Lstail, you need to create a config file called lstail.conf. Lstail will search for lstail.conf in the following locations (in that order):

  • /etc/lstail.conf
  • ~/.config/lstail.conf
  • lstail.conf (in current working directory)

Alternatively, you can specify the name of the config file to be read using the --config command line parameter.

An example config file can be found in the sources or online at https://raw.githubusercontent.com/eht16/lstail/main/lstail-example.conf. The important part to modify in the config file is the server section which must be edited to point to your ElasticSearch instance to query data from.

For details on all configuration options, please see the documentation: https://lstail.org/.

Usage

Display events (from the configured index pattern) since ten minutes:

lstail -r 10m

Display the last 20 events (from the configured index pattern):

lstail -n 20

Display all events matching the given query:

lstail -q 'host: google.com'

List Saved Searches from Kibana:

lstail -l

Display and follow events using the Saved Search "Syslog" (use Ctrl-C to interrupt):

lstail -s Syslog -f

Overwrite search query for Saved Search "Syslog" (i.e. ignore the query stored in the Saved Search but use the configured columns):

lstail -s Syslog -q program:cron

Command line options

usage: lstail [-h] [-V] [-d] [-v] [-c FILE] [-f] [-l] [-H] [--csv]
              [-n NUM] [-q QUERY] [-r RANGE] [-s NAME] [--select-saved-search]

optional arguments:
  -h, --help            show this help message and exit
  -V, --version         show version and exit (default: False)
  -d, --debug           enable tracebacks (default: False)
  -v, --verbose         Show own log messages (default: False)
  -c FILE, --config FILE
                        configuration file path (default: None)
  -f, --follow          Constantly fetch new data from ElasticSearch (default: False)
  -l, --list-saved-searches
                        List all saved searches from Kibana (default: False)
  -H, --no-header       Do not print header line before the output (default: False)
  --csv                 Use CSV (comma separated) output (default: False)
  -n NUM, --lines NUM   Output the last NUM lines, instead of the last 10 (default: None)
  -q QUERY, --query QUERY
                        Set/Overwrite the search query (use Lucene query syntax) (default: None)
  -r RANGE, --range RANGE
                        Query events from the last RANGE minutes(m)/hours(h)/days(d) (default: None)
  -s NAME, --saved-search NAME
                        Saved search title as stored in Kibana ("-" to select from a list) (default: None)
  --select-saved-search
                        Interactively select a saved search from a list (default: False)

Contributing

Found a bug or got a feature request? Please report it at https://github.com/eht16/lstail/issues.

Author

Enrico Tröger enrico.troeger@uvena.de

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

lstail-1.2.0.tar.gz (33.7 kB view details)

Uploaded Source

Built Distribution

lstail-1.2.0-py3-none-any.whl (39.9 kB view details)

Uploaded Python 3

File details

Details for the file lstail-1.2.0.tar.gz.

File metadata

  • Download URL: lstail-1.2.0.tar.gz
  • Upload date:
  • Size: 33.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.9

File hashes

Hashes for lstail-1.2.0.tar.gz
Algorithm Hash digest
SHA256 146529a8f54199a2d2cb673953d8c24e0062f00157f1a94f26d3c29e8cd14e96
MD5 816eda13cc7e1eedb792cf2252953bc0
BLAKE2b-256 3f7c196b075d8f8de17245d22dca398c77cf9de71d21f17662352ecdd763d5ef

See more details on using hashes here.

File details

Details for the file lstail-1.2.0-py3-none-any.whl.

File metadata

  • Download URL: lstail-1.2.0-py3-none-any.whl
  • Upload date:
  • Size: 39.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.9

File hashes

Hashes for lstail-1.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e37c7c9e539f8efdba4ab9a868bd6766719e3a93b43950f5228eeb9eb8e31300
MD5 da5ce7d61c6d344775cadbaff54a6398
BLAKE2b-256 8085eba2c0d64eaf8b88b61ce1b62b45f59a9a3fb0617141987c2427cefb7087

See more details on using hashes here.

Supported by

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