NAME

eris - Eris is the Greek Goddess of Chaos

VERSION

version 0.008

SYNOPSIS

eris exists to transform unstructured, chaotic log data into structured messages.

Born out of disappointment and regret of existing solutions like Logstash, fluentd, and their kind, eris aims to make development and debugging of parsers easy and transparent. The goal is to provide a config that be used to to index logging data into Elasticsearch while being flexible enough to work with log files on the system. This makes it friendly to approach from a maintenance perspective as we don't need to run a massive app to figure out how a log message will be restructured.

DESCRIPTION

eris is structured to be flexible, extensible, and visible in every component.

CONCEPTS

DECODER

Decoders are pluggable thanks to eris::role::pluggable and they are searched for in the the default namespace eris::log::decoder. To add other namespaces, use the search_path parameter in a config file:

---
decoders:
  search_path:
    - 'my::app::decoder'

Decoders operate on the raw string and provide rudimentary key/value pairs for the other contexts to operate on. Unlike the contexts, every discovered decoder is run for every message.

SEE ALSO

CONTEXT

Contexts are pluggable and are searched for in the default namespace eris::log::decoder. To add your own namespaces, use the search_path parameter in your config file:

---
contexts:
  search_path:
    - 'my::app::context'

Contexts implement the interface documented in eris::role::context. There are 4 major things to consider when implementing a new context.

The default field is 'program', and the default matcher is a string with the value equal to the context's name attribute. For instance, eris::log::context::sshd defaults it's name to 'sshd', and since it doesn't override the field, this context is only applied to events with a 'program' key with a value of 'sshd'.

SEE ALSO

DICTIONARY

Dictionaries are used in conjunction with schemas to filter eris::log contexts down to only the keys and values we want. This allows better control of the data headed into storage to prevent key space explosions.

SEE ALSO

SCHEMA

Schemas perform the transformation from structured data into documents for indexing. They allow control of the structure and destination of the document being indexed.

SEE ALSO

IMPLEMENTATIONS

The goal of eris is to provide a set of tools that can be glued together to transform unstructured logging data into structured data and then rules for taking that structured data and storing it somewhere. That sounds cool, but there's nothing useful about it unless you can start playing with it now.

This is why eris ships with sample implementations.

Scripts

Here's a list of the scripts installed along with eris so you can start breaking things.

AUTHOR

Brad Lhotsky brad@divisionbyzero.net

COPYRIGHT AND LICENSE

This software is Copyright (c) 2015 by Brad Lhotsky.

This is free software, licensed under:

The (three-clause) BSD License