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