Skip to content

antonshi/fluent-plugin-zookeeper

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

fluent-plugin-zookeeper

Fluentd output plugin for Apache Zookeeper.

Installation

RubyGems

$ gem install fluent-plugin-zookeeper

Bundler

Add following line to your Gemfile:

gem "fluent-plugin-zookeeper"

And then execute:

$ bundle

Configuration

The following is an example plugin configuration for Fluentd health monitoring:

<source>
  @type exec
  command echo -n '{"message": "heartbeat"}'
  tag heartbeat
  format json
  run_interval 10s
</source>

<match heartbeat.**>
  @type copy
  <store>
    @type zookeeper
    servers <zookeeper_server1>:<zookeeper_port1>,<zookeeper_server2>:<zookeeper_port2>,<zookeeper_server3>:<zookeeper_port3>,...
    path "/fluent/#{Socket.gethostname}_persistent"
  </store>
  <store>
    @type zookeeper
    servers <zookeeper_server1>:<zookeeper_port1>,<zookeeper_server2>:<zookeeper_port2>,<zookeeper_server3>:<zookeeper_port3>,...
    path "/fluent/#{Socket.gethostname}_ephemeral"
    type ephemeral
  </store>
</match>

Configuration above uses in_exec plugin as a heartbeat message generator. During normal operation two znodes will exist on Zookeeper for a host running Fluentd: persistent and ephemeral. Ephemeral znode is deleted automatically if fluentd has a "bad health" or network/connection problem. So, having only one persistent znode is a signal to trigger alert.

TODO

Let me know if support for buffered output mode and older versions of fluentd is necessary.

About

Zookeeper output plugin for Fluentd

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages