ワナビーエンジニアのブログ

なんでもいいから文化的な生活を送りたい

elasticsearch + kibanaでいい感じにモニタリングする

おばんどすー。
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に置きました。
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に配置してニマニマする流れです。

f:id:koooge:20160406235053p:plain
dark themeカッコイイ~~~



ハマりポイントとしては、

td-agentについてググって出てくる情報はやや古い
td-agent1の情報が多いです。
現在はtd-agent2なので若干違うようです。
td-agent.confをコピペして
# systemctl restart td-agentしたときにコケる。
なのでfluentdの公式ページを見るのが一番だと思います。



kibanaからforkしたGrafanaなんてのもあるみたいですが
それは気が向いたら触ってみます!