graphiteとStatsDによる事例紹介
運用メトリックデータの収集には、そのイベントデータをgraphiteに送る仕組みも必要となる。アプリケーションのイベントデータはStatsDというツールが担当する。収集したいイベントのクラスやモジュールに、あるいはデプロイスクリプトにStatsDに対するコードを追加すれば、イベント情報が1分ごとにgrahipteに送られる。追加するコードはシンプルでUDPを利用するので、プログラムへの影響やネットワークへの負担も少ない。ただし、UDPなのですべてのメトリックデータを確実にキャプチャしている保証はないが、イントラネット環境ではUDPのエラーは稀であるので、連続してイベント収集していれば問題ないとのことだ。
ここでガルブレス氏は、graphiteとStatsDを利用した運用の可視化事例として、ログイン情報の監視と可視化を紹介した。
StatsD::increment('logins');
$kuni = geoip2country($ipv4);
StatsD::increment('logins.$kuni');
上記の3行を追加すれば、国情報を伴ったログインイベントの収集が行え、グラフ化もすぐにできるという。例えば、深夜のログイン失敗イベントが多発を検出し、不正アクセスやブルートフォース攻撃のアラートを上げるといったことが簡単に実現できるとのことだ。
最後にダッシュボードのさまざまなバリエーションを紹介し、このようなツールを活用すれば、運用の可視化が可能で、継続的なデプロイに役立てることが可能ではないかとガルブレス氏はいう。



