Gathers, filters, mangles and redistribute log messages
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
docs
etc
logshipper
.gitignore
.travis.yml
LICENSE
README.md
requirements.txt
setup.cfg
setup.py
tasks.py
test-requirements.txt
tox.ini

README.md

Log shipper

Introduction

logshipper is a tool to gather logs from various sources, process them and send them elsewhere. It is similar to logstash, except it doesn't use the java virtual machine and ruby class library, which should help improve performance and decrease memory hunger.

In logshipper, logmessages travel to pipelines. Pipelines may have their own sources of logs, called inputs, or they may be invoked by other pipelines. In the pipeline, the log message travels through a number of steps. Each of those steps may modify the message, send it elsewhere or ignore it altogether.

Example:

inputs:
- tail: 
    filename: /var/log/messages
steps:
- match: "myapps\.test"
  extract: "widget=(\d+)"
  set:
    widget: {1}

- elasticsearch:
    url: http://127.0.0.1:9200

In this example pipeline, all meessages appended to /var/log/syslog are sent to elasticsearch. When a message contains the text myapps.test, the strings like widget=172 are parsed into a separate field.

Key concepts

Pipelines are lists of steps to be performed on a log message. Common tasks are to drop irrelevant messages, extract valuable data and sending the message somewhere. Pipelines contain zero or more inputs, and a number of steps.

Steps are part of pipelines. They consist of one one or more actions, which act on a log message. A typical step consist of a match action, and either a manipulator action, or an output action, although all of those are optional.

Actions are part of steps. Actions fall into one of three categories: match action, manipulator actions, and output actions, although this distinction is not very strict.