Web監視機能を利用する:ZABBIXで脱・人手頼りの統合監視(5)(2/2 ページ)
この連載では、オープンソースの運用監視ソフトウェア「ZABBIX」ではどんなことができるのかを、実際の使い方とともに紹介していきます(編集部)
障害通知の設定
ここまでの解説では、障害を検知した際にZABBIXのWebインターフェイス上では障害を確認することができました。しかし、システム管理者が常にWebインターフェイスを見続けて、障害を確認することは現実的には難しいでしょう。
ZABBIXは、障害を検知した際に管理者にメールを利用して障害通知を行う機能を有しています。この機能を利用することでシステム管理者はリアルタイムに障害を知ることができ、迅速な障害対応を行うことができます。
ZABBIXの障害通知はアクションと呼び、設定はメニューの[設定]→[アクション]から行うことができます。右上のイベントソースから「トリガー」を選択し「アクションの作成」をクリックすることでアクションの新規作成を行います。
アクションの設定画面では3つの領域で設定を行います。
- アクションの領域
アクションの基本的な設定と送信するメールの内容を設定する - アクションのコンディション領域
アクションを実行する条件を設定する - アクションのオペレーション領域
アクションを実行する内容を設定する
アクションの設定は、システム内のいずれかのトリガーの状態が変化したとき、コンディション領域で設定したホストやホストグループ、トリガーなどの条件にマッチした場合に、オペレーション領域で設定した内容を実行します。そのため、システム全体で障害が発生した場合や特定のトリガーが障害の状態になった場合など、柔軟に条件を指定して障害通知を行うことができます。
今回はシステム全体で何か障害が発生した場合に、障害を検知したトリガーの名前とトリガーの状態を記載したメールを送信する設定を行います。また、障害が復旧した場合にも同様のメールを送信するように設定します。メールの送信先はAdminユーザーとし、ユーザーのメールアドレスの設定などは後述します。
領域 | 設定項目 | 設定値 |
---|---|---|
アクションの領域 | 名前 | システム全体の障害通知 |
イベントソース | トリガー | |
エスカレーションを有効 | チェックしない | |
デフォルトの件名 | {TRIGGER.NAME}: {STATUS} | |
デフォルトのメッセージ | {TRIGGER.NAME}: {STATUS} | |
リカバリメッセージ | チェックする | |
リカバリの件名 | {TRIGGER.NAME}: {STATUS} | |
リカバリメッセージ | {TRIGGER.NAME}: {STATUS} | |
アクションのコンディション領域 | トリガーの値 = “障害” | |
アクションのオペレーション領域 | オペレーションのタイプ | メッセージの送信 |
メッセージの送信先 | シングルユーザー Admin | |
デフォルトのメッセージ | チェックする | |
表5 アクションの設定 |
アクションの領域で設定している{TRIGGER.NAME}などの設定はマクロと呼ばれる機能で、アクションが実行される際に実際の値に置き換えられます。
上記の設定の場合、{TRIGGER.NAME}は障害を検知したトリガーの名前に置き換えられ、{STATUS}はそのトリガーの状態に置き換えられます。マクロを活用することで、複数のトリガーの障害通知を1つのアクション設定にまとめることができます。上記以外の代表的なマクロには、以下のものがあります。利用できるマクロの一覧はZABBIXマニュアルを参照してください。
- {DATE}、{TIME}
アクション実行時の日付や時刻に置き換えられる - {ITEM.LASTDATA}
アクション実行時のアイテムの収集データ値に置き換えられる - {TRIGGER.SEVERITY}
トリガーの重要度に置き換えられる
続いて、アクションでメールの送信先として設定したAdminユーザーに、送信先のメールアドレスを設定します。ZABBIXは独自にユーザーの管理機能を有しており、ユーザーに対してWebインターフェイスのログインアカウント情報や障害通知のメールアドレスを設定するようになっています。
ユーザーの設定は、メニューの[管理]→[ユーザ]をクリックし、右上のドロップダウンリストから「ユーザ」を選択します。現在設定されているアカウントが一覧表示されるため、Adminアカウントをクリックして設定画面を開きます。
メールアドレスの設定は、メディアの設定項目の「追加」ボタンをクリックして表示されるポップアップ画面で行います。
今回は例として、root@localhostあてにメールを送るように設定します。メディアの設定画面ではメールアドレス以外にも、時間帯やトリガーの深刻度でメールを送信するかどうかのフィルタを設定できます。実運用では、必要に応じてこれらの設定を加え、「夜間休日のみ携帯電話にメールを送る」ように設定するなど、柔軟に活用できます。
項目 | 設定例 |
---|---|
タイプ | |
送信先 | root@localhost |
有効な時間帯 | デフォルト |
指定した深刻度のときに使用 | デフォルト |
ステータス | 有効 |
表6 Adminユーザーのメディア設定 |
最後に、メールを送信するメールサーバの設定を行います。メールサーバの設定はメニューの[管理]→[メディアタイプ]から行います。デフォルトでいくつかのサンプルが設定されていますが、今回は「Email」の設定を利用し、ZABBIXサーバがインストールされているサーバ上にメールサーバが動作しているものとして設定を行います。一覧からEmailをクリックし、設定画面で以下の設定を行います。
項目 | 設定 |
---|---|
名前 | |
タイプ | メール |
SMTPサーバ | localhost |
SMTP helo | localhost |
送信元メールアドレス | zabbix@localhost |
表7 メディアタイプの設定 |
以上で設定は完了です。システムで何か障害が発生した場合には以下のようなメールが送信されるようになります。
From: zabbix@localhost
件名: http service is down on ZABBIX Server: PROBLEM
本文: http service is down on ZABBIX Server: PROBLEM
また、障害が発生した履歴であるイベント画面([監視データ]→[イベント])画面にも、障害の詳細と併せて、送信したメールの内容が履歴として残るようになっています。
ZABBIXは障害が発生した際にメールを送信するだけでなく、Jabberプロトコルによるチャットメッセージを送信したり、ZABBIXサーバやZABBIXエージェントでスクリプトやコマンドを実行することも可能です。これらの機能の詳細については、ZABBIXマニュアルを参照してください。
Copyright © ITmedia, Inc. All Rights Reserved.