運用を見える化することでDevOpsを前進させよう(後編)~DevOps Day Tokyo 2013

2013年10月1日

世界中でDevOpsのムーブメントを広げているイベントDevOps Daysが今年も東京で「DevOps Day Tokyo 2013」として9月28日に都内で開催されました。

(本記事は「運用を見える化することでDevOpsを前進させよう(前編)~DevOps Day Tokyo 2013」の続きです)

自分1人で、1台のマシンで1日でデータを公開してみる

fig

今日は「1台、1日、1人」で運用データの公開をしてみるというチャレンジをしたいと思います。

すべてのメトリクスをまとめて、自動的にデータを共有できるようにし、自分は手間がかからないように自動化してみましょう。

fig

使うのはGraphiteというツールです。RRDtoolやGanglia、Cactiなどに似ています。

ドキュメントは貧弱だったりしますが、エコシステムはすばらしいと思います。入出力が簡単で、REST APIで簡単にグラフを作ることができるため、マッシュアップしたりダッシュボードのUIを作りやすく、サードパーティのツールもそろっています。

Graphiteで作ったグラフはURLを伝えるだけで共有できるので、HTMLで簡単にダッシュボードを作れます。

fig

Graphiteはマシンが1台あれば、50台以上のマシンから取得した数千のメトリクスを処理できるでしょう。CPUインテンシブというよりも、メモリと速いディスクがあるほうがよいです。

インストールは難しくありませんが、コンフィグファイルがやや複雑です。

メトリクスは、/proc、ps、df、netstatなどを利用できます。briteco

fig

こうした作業は1日もかからずにでき、誰にでも、共有できる運用メトリクスを用意することができると思います。

運用側のメトリクスは用意できるとして、アプリケーションやビジネスのメトリクスはどうすればいいでしょう。

StatsDでアプリケーションのログをとる

StatsDというツールがあります。これは私がEtsyにいるころに構築されたものです。イベントがリアルタイムにStatsDに配信されると、StatsDがデータを収集し、時系列に統計データとして計算してくれ、1分ごとにGraphiteに書き込んでいきます。

fig

StatsDはUDPを活用します。メトリクスはUDPの中に入れられるのです。UDPはネットワークを過負荷にすることもなく、存在しないサーバにパケットを送ったとしても問題を起こしません。

つまり、どのアプリケーションであってもこの機能を安全に追加できる、ということです。

fig

ユーザーがサービスにログインするデータのログをとるには、StatsDのコンフィグレーションファイルに1行追加するだけで済みます。

ユーザーのログインは高頻度で発生するイベントですが、低頻度のイベントもグラフ化できます。それもスクリプトに1行追加するだけです。低頻度のイベントとは、マシンのリブート、インストール、コアダンプ、クラッシュといったデータが該当するでしょう。

メトリクスの収集をデプロイのプロセスに入れるとこういう構成図になります。サーバが複数あり、誰かがログインすると StatsDがUDPパケットを送信し、1分ごとにまとまったデータがGraphiteに書き込まれていきます。

fig

こうしてみると退屈なログインデータも興味深いものになります。下の赤い線は失敗したログインの数です。

グラフにすると何が起きたのか誰でも分かる

午前3時、なにが起きたのでしょうか。誰かがブルートフォース攻撃でもしたようです。このグラフは運用チームだけでなく、セキュリティチームもビジネスチームも参照できます。

グラフが急上昇すると自動的にアラートを発する機能も備えています。

fig

これはGrapfhiteのデフォルトのビューですが、この形式は実験的な画面にはいいのでしょうけれど、毎日参照する画面としては面倒でしょう。

fig

それよりもこうしたダッシュボード形式の方がいいでしょう。これはEtsyのグラフで、ここでサイトがクラッシュしたことが誰でも分かります。

fig

ぜひみなさんも、ここで紹介した1台、1日、1人のチャレンジをしてみてください。そしてデータを見える化して社内で共有してみてください。さらに、人事、経理といったほかのビジネスグループのダッシュボードも作ってみてください。そうすることで社内の部署のコミュニケーションを向上させることができるでしょう。

公開されたスライド:Making operations visible - devopsdays tokyo 2013

DevOps Day Tokyo 2013

DevOps Day Tokyo 2012

このエントリーをはてなブックマークに追加
follow us in feedly

タグ : DevOps



≫次の記事
GitHub社内のDevOpsを支えるツール「Boxen」と「Hubot」(前編)~DevOps Day Tokyo 2013
≪前の記事
運用を見える化することでDevOpsを前進させよう(前編)~DevOps Day Tokyo 2013

Loading...

Blogger in Chief

photo of jniino Junichi Niino(jniino)
IT系の雑誌編集者、オンラインメディア発行人を経て独立。新しいオンラインメディアの可能性を追求しています。
詳しいプロフィール


Publickeyの新着情報をチェックしませんか?
Twitterで : @Publickey
Facebookで : Publickeyのページ
RSSリーダーで : Feed



Publickey 最新記事 10本

Publickey Topics 最新記事 10本


PR - Books


fig

fig

fig

fig



blog comments powered by Disqus