Skip to main content

webapp for looking at and searching through log files

Project description

Tailon is a self-hosted web application for looking at and searching through log files. It is little more than a fancy web wrapper around the following unix commands:

tail -f
tail -f | grep
tail -f | awk
tail -f | sed

Tailon is under development.

Screenshots

Tail Tail | Grep Tail | Awk

Installation

The latest stable version of tailon is available on pypi, while the development version can be installed from github:

$ pip install tailon  # stable version
$ pip install git+git://github.com/gvalkov/tailon.git  # development version

Alternatively, it can be installed manually:

$ git clone git@github.com:gvalkov/tailon.git
$ cd tailon
$ git reset --hard HEAD $versiontag
$ python setup.py install

Usage

To get started with tailon you only need to point it to the files that you wish to see in the web interface:

$ tailon -f /var/log/nginx/* /var/log/apache/{access,error}.log

Once this is done, visit http://localhost:8080 with your browser.

Tailon’s server-side functionality is succinctly documented in its help message:

$ tailon --help
Usage: tailon [-c path] [-f path [path ...]] [-h] [-d] [-v] [-b addr:port]
              [-r path] [-a]

Tailon is a webapp for looking at and searching through log files.

Required arguments:
  -c, --config path            yaml config file
  -f, --files path [path ...]  list of files or file wildcards to expose

Optional arguments:
  -h, --help                   show this help message and exit
  -d, --debug                  show debug messages
  -v, --version                show program's version number and exit
  -b, --bind addr:port         listen on the specified address and port
  -r, --relative-root path     web app root path
  -a, --allow-transfers        allow file downloads

Example config file:
  bind: 0.0.0.0:8080      # address and port to bind on
  allow-transfers: true   # allow file downloads
  relative-root: /tailon  # web app root path (default: '')

  files:
    - '/var/log/messages'
    - '/var/log/nginx/*.log'
    - '/var/log/xorg.[0-10].log'
    - 'cron':             # sub-section
        - '/var/log/cron*'

Security

Tailon runs commands on the server it is installed on. While commands that accept a script (eg. awk, sed, grep) should be invulnerable to shell injection, they may still allow for arbitrary command execution and/or access to the filesystem. To clarify, the following sed script - 's/a/b';cat /etc/passwd' - will result in an error as the command is not invoked through a shell. On the other hand, r /etc/passwd is a perfectly valid sed script that has the same effect as the above attempt for a shell injection.

The default set of enabled commands - tail, grep and awk - should be safe to use. Awk is ran in sandbox mode, which prevents scripts from accessing your system (either through the system() builtin or through input redirection).

Similar Projects

Attributions

  • tailon’s favicon was created from this icon.

License

Tailon is released under the terms of the New BSD License.

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

tailon-0.2.0.tar.gz (314.2 kB view hashes)

Uploaded Source

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