Fluentd: Open-Source Log Collector

Code Climate

Fluentd collects events from various data sources and writes them to files, RDBMS, NoSQL, IaaS, SaaS, Hadoop and so on. Fluentd helps you unify your logging infrastructure (Learn more about the Unified Logging Layer).

An event consists of tag, time and record. Tag is a string separated with '.' (e.g. myapp.access). It is used to categorize events. Time is a UNIX time recorded at occurrence of an event. Record is a JSON object.

Example Use Cases

Use Case Description Diagram
Centralizing Apache/Nginx Server Logs Fluentd can be used to tail access/error logs and transport them reliably to remote systems.
Syslog Alerting Fluentd can "grep" for events and send out alerts.
Mobile/Web Application Logging Fluentd can function as middleware to enable asynchronous, scalable logging for user action events.

Quick Start

$ gem install fluentd
$ fluentd -s conf
$ fluentd -c conf/fluent.conf &
$ echo '{"json":"message"}' | fluent-cat debug.test

Development

Prerequisites

  • Ruby 2.1 or later
  • git

git should be in PATH. On Windows, you can use Github for Windows and GitShell for easy setup.

Install dependent gems

Use bundler:

$ gem install bundler
$ bundle install --path vendor/bundle

Run test

$ bundle exec rake test

You can run specified test via TEST environment variable:

$ bundle exec rake test TEST=test/test_specified_path.rb
$ bundle exec rake test TEST=test/test_*.rb

Running in Production

Many enterprises run Fluentd in production to handle all of their logging needs. For enterprises requiring Security tested binaries, SLA-based support, architectural guidance, and enhanced plugin connectors see Fluentd Enterprise.

Fluentd UI: Admin GUI

Fluentd UI is a graphical user interface to start/stop/configure Fluentd.

More Information

Contributors:

Patches contributed by great developers.