読者です 読者をやめる 読者になる 読者になる

ZABBIXでの簡単死活監視ことはじめ

ZABBIX

GPLv2 で公開されている OSS の ZABBIX でざっくり死活監視を設定しましたので、自分メモとして残します。インストールした環境は以前のエントリ ZABBIX インストールメモ を参照してください。

死活監視ツールの比較

今までは Nagios を使用していました。Apache だけで動作しますし、設定ファイルもそれほど難しくなく必要十分な機能がついていたので重宝していました。サーバーをリプレイスしたのをきっかけに ZABBIX にチャレンジしました。ZABBIX のサイトに死活監視ツールの比較資料がありましたので、リンクしておきます。
ページが見つかりません | ZABBIX-JP

ZABBIX はブラウザだけで設定が出来るのと、テンプレートで設定を纏めることができるので仕組みが分かれば非常に楽に運用できると思います。

注意

このエントリでは最もベーシックであろう ping によるマシンの死活監視、および HTTP、FTPSSH などの各種サービスの死活監視を行う私なりの手引きを簡単に纏めます。このエントリでは、ホストの設定までを行い、アクションの設定は行いません。次のエントリでアクションについても記載していく予定です。

なお、多くのマニュアルやブログのエントリで ZABBIX エージェントを使用する方法が記載されていますが、面倒ですし、ping による死活監視にはエージェントは必要ないため、ここではエージェントなしのシンプルチェックの設定に限定して記述します。

インストールやアカウントなどの基礎設定は、
ZABBIX-JPドキュメント
Zabbix マニュアル [Zabbix]
を参照してください。

ホスト、アイテム、トリガー、アクションについて

ZABBIX が取っ付きにくいのはホスト、アイテム、トリガー、アクションという 4つの要素があり、それぞれが紐付いているからだと思われます。以下、簡単に構造を説明します。

  • ホスト
    監視対象の要素です。アイテム、トリガーが含まれます。
    • アイテム
      監視する状態やプロトコルを設定します。ここでは「シンプルチェック」というタイプを使用します。
    • トリガー
      監視中のアイテムがどのような状態になった時にどのようなステータスを返すかを設定します。
  • アクション
    トリガーの状態によりどのような動作をさせるかを設定します。

これらの説明やトリガー、アクションの例は ZABBIX 1.8でサーバ監視 | feedforce Engineers' blog に詳しいので参照してください。ただし、これらを自分で設定していくのは少し大変です。

そこで「テンプレート」という仕組みを使用します。

テンプレート

ZABBIX の重要な概念がテンプレートです。テンプレートはホストの一種で、ホストと同じくアイテム、トリガーが含まれます。新規にホストを作成する際にテンプレートと紐付けることによって、設定を一括で管理することができる仕組みです。

幸い ZABBIX には、ベーシックなシンプルチェックを含む「Template_Standalone」というテンプレートがありますので活用しましょう。

Template_Standalone の登録済みアイテムの確認と追加
  1. ZABBIX メニューから「設定」-「アイテム」をクリックします。
  2. 「グループ」ドロップダウンから「Templates」を選択します。
  3. 「ホスト」ドロップダウンから「Template_Standalone」を選択します。
    f:id:tubapr:20110104144329p:image:medium

smtpftpimap、nntp、pop、ssh、http のサービスの死活監視が設定されていることが分かると思います。ping の監視を追加しましょう。

  1. 「アイテムの作成」をクリックします。
  2. 以下の設定を行います。
    • 「名前」に「ICMP ping」など任意の名前を入力します。
    • 「タイプ」から「シンプルチェック」を選択します。
    • 「キー」の「選択」ボタンをクリックして、「icmpping」をクリックします。
    • 「データ型」、「単位」、「乗数を使用」はデフォルトのまま。
    • 「更新間隔(秒)」は任意ですが「60」にします。
    • 「ヒストリの保存期間(日)」、「トレンドの保存期間(日)」、「ステータス」、「保存時の計算」はデフォルトのまま。
    • icmpping は 1 がアップ、0 がダウンのため「値のマッピングの使用」から「Service state」を選択します。
    • 「アプリケーションの作成」、「アプリケーション」はデフォルトのまま。
  3. 「保存」ボタンをクリックします。

これで ping の監視設定が追加されました。

Template_Standalone の登録済みトリガーの確認と追加
  1. ZABBIX メニューから「設定」-「トリガー」をクリックします。
  2. 「グループ」ドロップダウンから「Templates」を選択します。
  3. 「ホスト」ドロップダウンから「Template_Standalone」を選択します。
    f:id:tubapr:20110104143728p:image:medium

アイテムとして登録された各種サービスが UP(1) 以外の状態になった時に、「軽度の障害」という「深刻度」トリガーを発行する設定です。ping が UP(1) 以外の状態の時に「重度の障害」トリガーを発行する設定を追加しましょう。

  1. 「トリガーの作成」ボタンをクリックします。
  2. 以下の設定を行います。
    • 「名前」に「{HOSTNAME}'s status」と入力します。これはマクロで、ホストの名前に置き換わります。
    • 「条件式」の「挿入」ボタンをクリックして、コンディションウィンドウを表示します。
      • 「グループ」から「Templates」、「ホスト」から「Template_Standalone」を選択します。
      • 「アイテム」の「選択」ボタンをクリックして、テンプレートに追加済みの「ICMP ping」を選択します。
      • 「機能」から「Last value NOT N」を選択します。
      • 「N」に「1」を入力し、「挿入」をクリックします。
    • 「条件式」に「{Template_Standalone:icmpping.last(0)}#1」が入力されていることを確認します。
    • 「依存関係の作成」はなし、「イベント生成」はデフォルトのまま。
    • 「深刻度」から「重度の障害」を選択します。
  3. 以降はデフォルトのまま、「保存」ボタンをクリックします。
  4. 「Template_Standalone's status」という「重度の障害」トリガーが作成されたことを確認します。
    f:id:tubapr:20110104143734p:image:medium

これで ping のトリガーが追加されました。

テンプレートを使用したホスト追加

それでは監視対象のホストを設定してみましょう。

  1. メニューから「設定」-「ホスト」をクリックします。
  2. 右側のドロップダウンから「ホスト」を選択し「ホストの作成」ボタンをクリックします。
  3. 次の設定を行います。
    • 「名前」に任意の名前を入力します。
    • IPアドレス」に対象ホストの IP アドレスを入力します。
    • 「接続方法」から「IPアドレス」を選択します。
    • 「テンプレートとのリンク」の「追加」ボタンをクリックし、表示されるテンプレートから「Template_Standalone」をチェックして「選択」ボタンをクリックします。
    • 上記以外の項目はとりあえずは無視しても構いませんが、ホストグループを作成しておくと便利です。「新規グループ作成」で任意のグループを作成しましょう。次回のホスト作成の際には、「グループ」に作成したグループが表示されるので、「<<」アイコンをクリックしてホストグループに追加します。
  4. 設定が完了したら右下の「保存」ボタンをクリックします。

ホスト一覧に設定したホストが追加されているのが分かると思います。

そのまま作成したホストに登録されているアイテムを確認、修正します。

  1. 「設定」-「アイテム」をクリックします。
  2. 「ホスト」ドロップダウンから作成したホスト名を選択します。
  3. ホストで動作していないサービスを「無効」にします。
    例えば、Windows の Web サーバーの監視をする場合、ICMP ping と WEB (HTTP) server is running のアイテム以外は必要ないと思いますので、それ以外をチェックして、「選択を無効」ボタンをクリックします。
    f:id:tubapr:20110104143729p:image:medium

トリガーは各アイテムが無効になっていれば無視されますので、これでホストの設定は完了です。「監視データ」-「最新データ」をクリックして、「ホスト」ドロップダウンから作成したホストを選択してみましょう。
f:id:tubapr:20110104143730p:image:medium

ホストグループを作成した場合は、「監視データ」-「ダッシュボード」-「システムステータス」にホストグループが表示され、障害が発生した際は深刻度と共に障害のあるホスト数が表示されます。この例ではホストを 2つ落としてあるので、重度の障害が 2つ出ています。
f:id:tubapr:20110104143733p:image

後は、重度の障害が発生した際にメールを送るアクションなどを設定すれば基本的な死活監視が出来上がりです。
アクションの設定、エスカレーションの設定などは別のエントリで記述したいと思います。また、各アイテムやトリガーなどを更に細かく設定したい場合は、ページが見つかりません | ZABBIX-JP などを参考にされると良いかと思います。

以上です。