ようへいの日々精進XP

よかろうもん

sinatra を使って td-agent(fluentd) のバッファの状態をモニタリングするダッシュボードを作ってみた

はじめに

  • ちゃんとモニタリングしたい場合にはこちらを使うと良いです!
  • td-agent(fluentd) の内部情報を monitor_agent を有効にして収集するようにしてみた
  • 複数のホストから収集出来る情報を一覧で見たいと思ったので rubysinatra 等の勉強も兼ねてダッシュボード的なものを作ってみた
  • the 車輪の再発明
  • また、td-agent(fluentd) のバッファリングについても自分の中で整理整頓してみた

参考


で、どんなものなの?

ソースコード一式はこちら

スクリーンショット

f:id:inokara:20131219052621p:plain

やってること

monitor_agent が有効になっているホストから以下の項目の値を取得して表示している。

  • type(プラグインのタイプ)
  • retry_count
  • buffer_queue_length
  • buffer_total_queued_size

特に注意して見るべきだと考えているのが buffer_queue_lengthbuffer_total_queued_size の二つ。以下はそのデフォルト値(現時点ではこの値をしきい値として考えている)を整理したもの。(ファイルバッファの場合)

項目 値(デフォルト値) 備考
buffer_queue_length 256 buffer_queue_limit 256
buffer_total_queued_size 256 x 8MB buffer_chunk_limit 8MB x buffer_queue_limit 256(であってる??)

この値は output プラグインで上書きすることが出来るとのことなので、一概にこれを上限やしきい値として設定することは難しいが、一つの指標として利用してみる。


今後の予定

  • バッファのタイプも取れるようにする
  • ダッシュボードからホストの登録が出来るようにする
  • 各種値をグラフで取れるようにする(とりあえず growthforecast と連携させる)
  • ホストをクラスタ単位でグルーピングしてクラスタの状態等も網羅できるようにする

世の中には既に良いツールが出回っているはずなのであまり作りこまないようにする!


最後に

  • この自作ツール自体は車輪の再発明だとは思うが、td-agent(fluentd) の内部情報を監視する必要性を感じた
  • また、バッファ周りについて知見を深めることが出来た(完全には理解しきれてないけど)
  • チョー基本的な質問に優しく応えて下さった同僚の T 氏にはチョー感謝(有難うございました)