Fluent BitのOutput PluginsにElasticsearchが追加されました
はじめに
藤本です。
弊社メンバーからfluent-bitのOutput PluginsにElasticsearchが実装されたことを教えていただいたので早速試してみました。
概要
Fluent BitはC言語で実装された軽量なデータコレクタです。センサーのような非力な機器でデータ収集に向いています。先日リリースされたv0.5でElasticsearchへの出力が実装されました。動作を確認してみましたのでご紹介します。センサーデータをグラフ化できたら方が面白かったと思いますが、今回はAmazon LinuxのCPU/MEM使用状況を送信して、Kibana(Timelion)で可視化します。
環境
- クライアント
- OS : Amazon Linux 2015.09
- Fluent Bit : 0.5.1
- サーバー
- OS : Amazon Linux 2015.09
- Elasticsearch : 2.1.0
- Kibana : 4.3.0
やってみた
Fluent Bitインストール
インストール手順はAmazon Linux で Fluent Bit を動かしてみたをご参照ください。
Index Templates作成
Fluent BitはTimestampをUnixtimeで送信します。ElasticsearchはDynamic MappingでDate型を自動で認識しますが、Unixtime形式は数値として判断します。そのため事前にIndex Templateを定義し、Unixtime形式をDate型と認識する設定が必要です。
$ curl -XPUT "http://localhost:9200/_template/template1" -d' { "template": "metric", "mappings": { "web01": { "properties" : { "@timestamp" : { "type" : "date", "format" : "epoch_second" } } } } }'
epoch_secondはUnixtimeの秒形式となります。
Fluent Bitの起動
今回はCPU情報、メモリ情報を送信します。
出力先のElasticsearchは以下の形式で記載します。
es://<Elasticsearchホスト>:<ポート番号>/<INDEX名>/<TYPE名>
$ bin/fluent-bit -i cpu -o es://172.31.26.223:9200/metric/web01 -f 1 & [1] 3105 Fluent-Bit v0.5.0 Copyright (C) Treasure Data [2015/12/21 23:30:23] [ info] starting engine [2015/12/21 23:30:23] [ info] [es] host=172.31.26.223 port=9200 index=metric type=web01 $ bin/fluent-bit -i mem -o es://172.31.26.223:9200/metric/web01 -f 1 & [2] 3107 Fluent-Bit v0.5.0 Copyright (C) Treasure Data [2015/12/21 23:30:28] [ info] starting engine [2015/12/21 23:30:28] [ info] [es] host=172.31.26.223 port=9200 index=metric type=web01
Kibanaによる可視化
まずデータを確認してみます。
CPUはCPU使用率が送信されています。
MEMはメモリ総量、空きメモリ値が送信されています。
続いて、Timelion(使ってみたかっただけ)で可視化してみます。
と、こんなに簡単にグラフ化できました。
まとめ
Fluent Bitは標準入力のInput Pluginを持っていますので、センサーデータであれば、取得したデータをFluent Bitに渡せば、簡単にElasticsearch/Kibanaで可視化できそうですね!