Giter Club home page Giter Club logo

bitfan's Introduction

Bitfan

Logstash like implementation with GO.

Bitfan logo

Install

2 ways to get bitfan : download a released version or compile it from source.

Download binary

linux, windows, osx available here : https://github.com/veino/bitfan/releases

Get source and compile

$ go get -u github.com/veino/bitfan

Run

$ bitfan run https://raw.githubusercontent.com/veino/bitfan/master/examples.d/simple.conf
logstash flags works as well `-f`, `-e`, `--configtest`, ...

copy/paste this in your console

127.0.0.1 - - [11/Dec/2013:00:01:45 -0800] "GET /xampp/status.php HTTP/1.1" 200 3891 "http://cadenza/xampp/navi.php" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:25.0) Gecko/20100101 Firefox/25.0"

Other command

type bitfan help to display usage information

Usage:
  bitfan [flags]
  bitfan [command]

Available Commands:
  doc         Display documentation about plugins
  list        List running pipelines
  run         Run bitfan
  service     Install and manage bitfan service
  start       Start a new pipeline in a running bitfan
  stop        Stop a running pipeline
  test        Test configurations (files, url, directories)
  version     Display version informations

Flags:
  -f, --config string       Load the Logstash config from a file a directory or a url
  -t, --configtest          Test config file or directory
      --debug               Increase verbosity to the last level (trace), more verbose.
  -e, --eval string         Use the given string as the configuration data.
  -w, --filterworkers int   number of workers (default 4)
  -h, --help                help for bitfan
  -l, --log string          Log to a given path. Default is to log to stdout.
      --settings string     Set the directory containing the bitfan.toml settings (default "current dir, then ~/.bitfan/ then /etc/bitfan/")
      --verbose             Increase verbosity to the first level (info), less verbose.
  -V, --version             Display version info.

Use "bitfan [command] --help" for more information about a command.

include configuration from other configuration

include configuration from an URL

$ bitfan run "input{stdin{}} filter{use{path=>'https://raw.githubusercontent.com/veino/bitfan/master/examples.d/use/lol/test.conf'}} output{stdout{codec=>rubydebug}}"

use configuration file on local filesystem

$ bitfan run "input{stdin{}} filter{use{path=>'apachelogs.conf'}} output{stdout{codec=>rubydebug}}"

See examples in examples.d/use/ folder

TODO

  • parse logstash config file
  • support command line flags "ร  la logstash"
  • generic input support
  • generic filter support
  • generic output support
  • configuration condition (if else) support
  • dynamic %{field.key} support in config file
  • gracefully stop
  • gracefully start
  • name all contributors, imported packages, similar projects
  • use remote configuration file
  • include local and remote files from configuration files
  • codec support
  • log to file
  • plugins autodocumentation
  • install bitfan as a system daemon / service
  • list currently runnnung pipelines
  • start new pipelines in a running instance
  • stop a pipeline without stopping other
  • import external configuration from configuration (use)
  • dispatch message to another configuration from configuration (fork)

Supported inputs, filters and outputs in config file

can be found here : https://github.com/veino/veino/tree/master/processors

type bitfan doc to list all available plugins

INPUT

PLUGIN DESCRIPTION
twitter
exec
unix
stdin Reads events from standard input
file
beats
rabbitmq
udp
syslog
readfile

type bitfan doc pluginname to get more information about plugin configuration and usage

FILTER

PLUGIN DESCRIPTION
date Parses dates from fields to use as the Bitfan timestamp for an event
grok
split Splits multi-line messages into distinct events
json Parses JSON events
uuid Adds a UUID to events
drop Drops all events
geoip Adds geographical information about an IP address
kv Parses key-value pairs
html
mutate

type bitfan doc pluginname to get more information about plugin configuration and usage

OUTPUT

PLUGIN DESCRIPTION
stdout Prints events to the standard output
null Drops everything received
file
glusterfs
statsd
mongodb
elasticsearch
elasticsearch2
rabbitmq
email Sends email when output is received

type bitfan doc pluginname to get more information about plugin configuration and usage

SPECIAL for all sections

PLUGIN DESCRIPTION
use reference another configuration file (URL or local path) to include (copy/paste) in your current configuration

Used package

  • kardianos/govendor Go vendor tool that works with the standard vendor file
  • spf13/cobra - A Commander for modern Go CLI interactions
  • bbuck/go-lexer (a forked version) - Lexer based on Rob Pike's talk on YouTube
  • veino/veino - all plugins and runtime used by bitfan

Similar projets in go

  • tsaikd/gogstash - Logstash like, written in golang
  • packetzoom/logzoom - A lightweight replacement for logstash indexer in Go
  • hailocab/logslam - A lightweight lumberjack protocol compliant logstash indexer

Credits

logo "hand fan" by lastspark from the Noun Project

Contributors

  • Valere JEANTET
  • Merlin Gaillard
  • Alexander AKULOV

bitfan's People

Contributors

alexakulov avatar pbkdf3 avatar vjeantet avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.