apatheia.info

Fluentdの出力結果をStatHatで可視化する

2013.03.17 fluentd stathat logging visualization

Fluentdで取得した情報を可視化したいとき、fluent-plugin-growthforecastを使ってGrowthForecastにグラフを作る方法がよく知られている。GrowthForecastはインストール後すぐに使い始められるお手軽ツールなんだけど、それすら面倒くさい、自前で環境を作るのが面倒、というときにはStatHatを使うと簡単に可視化を実現できるという話。

StatHatはシンプルなインターフェースで必要十分な機能があり、しかも無料で使えるというサービス。HTTPでデータを登録するだけできれいなグラフが簡単に生成できるので、幅広い用途で利用できる。

以降、FluentdStatHatを組み合わせて利用するための設定を説明する。

作業

StatHat

StathatのSign upにアクセスしてメールアドレスを登録し、折り返し届くメール内のURLからパスワードを登録すればすぐ使い始められる。グラフを作るための下準備は不要。まずは、curl を使って直接 POST してみる。

curl -d "email=登録時のメールアドレス&stat=body temperature&value=36.8" http://api.stathat.com/ez

すると、メールアドレス宛にグラフの追加が通知され、画面から確認できるようになる。

(メールアドレスに+みたいなURLエンコードが必要な文字を含んでる場合は、 --data-urlencode を使って一つずつパラメータを指定すればいい)

APIを利用するために必要となるキーは、初期状態だと登録時のメールアドレスになっている。これは設定画面から変更可能。タイムゾーンも修正できるので住んでいる地域に変更しておいた方がいい。

Fluentd

Fluentd から StatHat を利用するためにプラギン作ったので、これを利用する。

fluent-gem install fluent-plugin-stathat

たとえば、よくある「HTTP ステータスコードのカウント」の場合、以下のような設定をすればいい。

<source>
  type tail
  format apache
  path /var/log/httpd/access_log
  tag apache.access
</source>
<match apache.access>
  type datacounter
  unit minute
  tag stathut.httpstatus
  count_key code
  pattern1 2xx ^2\d\d$
  pattern2 3xx ^3\d\d$
  pattern3 4xx ^4\d\d$
  pattern4 5xx ^5\d\d$
</match>
<match stathut.httpstatus>
  type copy
  <store>
    type  stathat
    stat 2xx
    ezkey [email protected]
    count apache.access_200_count
  </store>
  <store>
    type  stathat
    stat 3xx
    ezkey [email protected]
    count apache.access_3xx_count
  </store>
  <store>
    type  stathat
    stat 4xx
    ezkey [email protected]
    count apache.access_4xx_count
  </store>
  <store>
    type  stathat
    stat 5xx
    ezkey [email protected]
    count apache.access_5xx_count
  </store>
</match>

これで、こういったグラフが作れる。

httpstatus 4xx

まとめ

StatHat 便利。