Skip to content

ondergetekende/logshipper

Repository files navigation

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.

About

Gathers, filters, mangles and redistribute log messages

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages