おばんどすー。 kibana + elasticsearch + fluentdという今どきのモニタリングに憧れたので試しました。
それぞれについて軽く説明
kibana いい感じにデータをvisualizeするelasticsearchのplugin
elasticsearch いい感じにデータを蓄えて(ここは適切でない)、いい感じにデータを検索するエンジン
fluentd elasticserachにいい感じにデータを渡すパイプ役
さて今回試しに使ったのがdstatのデータ。 メモリ使用量やcpu使用率などなどのデータがとれる何でもできるすごいやつ。
topとかvmstatとか/proc/memifno等々ラッパーツールなのかな? fluent-plugin-dstatというpluginを使えば簡単に情報を渡せるみたい。
今回の練習の構成を図示します。
[f:id:koooge:20160406232647g:plain]
1個の仮想マシンに2個のdockerコンテナをたてた構成。 td-agentというのはfluentdのラッパーツールのこと。
- kibana4.5.0
- elasticsearch2.3.0
- td-agent 0.12.20
これでhttp://192.168.33.10:5601にアクセスすればkibanaが表示されると思います。 仮想マシンとコンテナの説明は省きますが、 Vagrantfileとdocker-compose.ymlをgithubに置きました。 [https://github.com/koooge/kibana-practice:title]
さてどんなデータを集めるかについては、 /etc/td-agent/td-agent.confが肝なんですれども こんな感じ。
||
type dstat tag dstat option -tlcmsgdpyn type copy type elasticsearch host 192.168.33.10 port 9200 logstash_format true logstash_prefix logstash type_name dstat flush_interval 5s ||<kibanaにデータが蓄積されるようになったら あとは習うより慣れろ。 見た目より複雑ではないので、使ってみて覚えれば良いと思いました。
基本は Visualizeで作ったグラフをDashboardに配置してニマニマする流れです。
[f:id:koooge:20160406235053p:plain] dark themeカッコイイ~~~
ハマりポイントとしては、
td-agentについてググって出てくる情報はやや古い td-agent1の情報が多いです。 現在はtd-agent2なので若干違うようです。 td-agent.confをコピペして
systemctl restart td-agentしたときにコケる。 なのでfluentdの公式ページを見るのが一番だと思います。
kibanaからforkしたGrafanaなんてのもあるみたいですが それは気が向いたら触ってみます!