かみやんの技術者ブログ

主にプログラムの話です

ZABBIXのススメ

先週は、AWSへ引っ越しについてエントリを書いた。今週は、サービス監視について。
引っ越し前は、MRTGを使っていた。サービス監視というよりは負荷の可視化ですね。SNMP(Simple Network Management Protocol)を使って得られるメトリクスをグラフ化していました。CPU負荷、メモリ使用量、ディスク使用量、ネットワークトラフィック(通信量)、プロセス数などをdaily, weekly, monthlyでグラフ化します。グラフ化されていると、問題が起こったときに何が原因か、または、問題が起こる前に予測ができます。引っ越し前は、それとは別にサービス監視(死活監視)としてPerlスクリプトを使ってプロセスが生きているかを監視して死んでいたら再起動させるなどをしていました。
MRTG導入時は、7年ぐらい前だったので、そろそろ古めかしいシステムでなく近代的なものにしたいなと思って探したところZABBIXがよさげだったので導入しました。

上図が、ダッシュボードのトップ画面です。ホストをグループ分けして、どのグループに警告がでているか、エラー(エラーのときは赤くなる)が出ているかわかります。グループをクリックすればさらにホスト一覧へとドリルダウンできます。警告とするトリガーやエラーとするトリガーも設定できます。グループ管理できることで、数百台の場合でも管理できるようになっているのでしょう。また、大量のメトリクスやトリガーやイベントがテンプレートとしてデフォルトでインストールされるので、ホストを追加したらテンプレートを追加するだけで、大量のメトリクスなどが一気に追加されて便利です。

上図が、CPU使用率です。Load Averageと違って、User Time、System Time、I/O Wait、Nice、Interrupt、Soft IRQ、Steal Timeなども色分けして表示してくれます。また、負荷が高そうな部分をズームしたい場合でもその辺りを横にドラッグして選択すると選択範囲が拡大されます。

MRTGよりよくなったこと

  1. MRTGではサーバ上の設定ファイルを作成、設定値の追加、編集が必要であり、ホストの追加・削除の度にサーバでの作業が必要であったが、ZABBIXではWebUIでホストの追加、メトリクスの追加・削除・編集が可能になった
  2. MRTGではメトリクスの可視化(グラフ化)のみであったが、ZABBIXはトリガとかイベントで通知を送る機能などがある
  3. MRTGではグラフのグループ化は、HTMLを書くなどの必要があったが、ZABBIXではWebUIでグループ化ができたり、グラフ一覧表ページ(Screenと呼ぶ)を追加・編集・削除ができる
  4. MRTGではdaily, weekly, monthlyと固定的であったが、ZABBIXではデータはRDBに保存されており(アイビスではMySQLを使用)、グラフのビューも表示スパンがWebUIで自由に変更できる

ZABBIXの使いにくいところ

いいことづくめにみえますが、使いにくいところもあります。

  1. Screenの編集が使いづらい。全体的にプルダウンを選択したら全画面リロードになって使いにくい。特にScreenの編集がつらい。色々なところをAJAXにして部分書き換えになってくれるとよい。

というところです。WebUIが重いと結局テキストファイルで編集した方が早いのか?とも思えてきます(が、テキストファイルはテキストファイルでミスしやすいのが問題なのだが)。一応、XMLでExportして、テキストエディタで編集してImportもできるのですが、XMLの編集自体が面倒。強力なXMLエディタを探した方がよいのかもしれません。

今のところプラグインを作成して独自のメトリクスを追加というのはやっていません。この辺は研究してコツコツ追加してゆきたいと思います。

#今日は、選挙でしたね!早く帰って選挙結果のTVをみたい。

――
アプリ受託開発、Webシステム受託開発も行っています。以下自社製品。
URL:ibisMail Freeのダウンロード、レビューはこちら
URL:ibisMail for iPhoneのダウンロード、レビューはこちら
URL:ibisMail for iPadのダウンロード、レビューはこちら
URL:ibisPaintのダウンロード、レビューはこちら サイトは、ibispaint.com
ご意見ご要望はTwitterから: @kamiyan