Fluentdってなんじゃ?(datacounter+Growthforecast+RDSでステータスコードの傾向を可視化)memorycraft更新とか絶対忘れるから。2013年1月15日火曜日Fluentdってなんじゃ?(datacounter+Growthforecast+RDSでステータスコードの傾向を可視化)Fluentdではさまざまなデータを構造化することができるので、フロント側の可視化ツールに渡すことも柔軟に対応できます。今回はGrowthForecastという可視化ツールに表示させてみます。データはApacheのログを使い、表示する内容はHTTPステータスコードの2xx,3xx,4xx,5xxのそれぞれの回数を時系列で表示してみたいと思います。GrouthForecastはデータのスタックにDBを使用し、デフォルトではsqlite3ですが、今回はRDSのMySQLを利用してみます。構成は下図のようなイメージです。管理サーバー(222.222.222.222)まずは、管理サーバーのEC2インスタンスにGrowthForecastをインストールします。必須ライブラリをインストールします。bitmap-console-fontsperlbrewとcpanmをインストールします。--self-upgradeGrowthForecastをインストールします。http://nomadscafe.jp/pub/GrowthForecast/GrowthForecast-0.34.tar.gz次に、RDSを設定します。今回は内容はほぼデフォルトでOKです。設定したら接続権限を設定します。RDSのエンドポイントに対して接続し、GRANT文を定義します。'memorycraft-pass';また、RDSのセキュリティグループも設定します。管理サーバーのEC2の5125(GrowthForecastのデフォルトポート)のInboundに管理者とWEBサーバーから接続できるように追加しておきます。GrowthForacastを起動します。--with-mysqlオプションをつけると、データベースにMySQLを使用するようになるので、RDSのエンドポイント付きのdsnを渡します。dbi:mysql:growthforecast:growthforecast.cwnvl1ncuiwq.ap-northeast-1.rds.amazonaws.comこれで起動されました。http://222.222.222.222:5125/を見ると以下のように、まだグラフがなにも表示されていません。WEBサーバー(111.111.111.111)GrowthForecastはAPI経由でデータを登録するのが基本です。今回はそれを利用します。ログ中のHTTPステータスコードをカウントするために、fluent-plugin-datacounterも利用します。fluentd(td-agent)のインストールは以前の記事の通りです。fluent-plugin-datacountertd-agent.confは以下のように設定します。datacounterの結果をGrowthForecastへ投稿この場合は、http://222.222.222.222:5125/api/admintool/httpstatus/グラフ名への投稿になり、グラフ名にはapache.httpstatus_apache_2xx_countのように入ります。これはgrowthforecastのタグ_オリジナルタグ_パターン名_countの形で、datacounterとgrowthforecastの2つのディレクティブを通過しているためのようです。この名前が冗長であれば、それぞれのディレクティブでremove_prefixなどを使って調整など行えそうです。</store></match>ここまで出来たら、td-agentを起動します。startこれで設定は完了です。WEBサーバーのコンテンツに適当にアクセスしてから、管理サーバーのGrowthForecastのアドレス(http://222.222.222.222:5125)を見てみます。このリンクを辿って行くと、、おお、4つのグラフが表示されています。ここで、「複合フラグの追加」というリンクをクリックすると4つの項目を1つのグラフに統合した新しいグラフを作ることができます。基本のグラフに加え、2番目以降の系列に残りの項目を追加していくと、以下の様にスタックされたグラグを作成することができます。datacounterという汎用的すぎるプラグインと、GrowthForecastというとても便利なグラフ化ツールで、いろいろなリソースを可視化してみると、運用の負荷軽減だけではなく、ユーザーの動向などもわかってお得ですね。