Zabbixによる監視(6) 第07回 19年10月 / 最終更新:2019.10.22

前回はZabbixのトリガーについて説明しました。今回は、トリガーから発生時に起動するアクションについて説明しようと思います。

トリガーの補足事項

深刻度

トリガー設定には深刻度の設定ができます。深刻度は、以下のものを指定できます。下に行くほど深刻度が上がります。

  1. 未分類
  2. 情報
  3. 警告
  4. 軽度の障害
  5. 重度の障害
  6. 致命的な障害

依存関係

トリガー設定に依存関係を設定できます。例えば、以下の監視をしていた場合を考えます。

  1. L3 Switchの死活監視
  2. L3 SwitchのSNMPのポート死活監視
  3. 対象ホストの zabbix agent死活監視
  4. ホストのCPU・メモリ・HDDの監視

この場合、1で障害が発生した場合、2も障害を検知します。同様に、2や3で障害が発生した場合は4も障害が発生します。このような場合は、1←2←3←4のように依存関係を設定しておきます。これで障害が発生した場合に、障害が発生した最上位のトリガーだけが障害検知を報告します。

アクション機能

Zabbixのアクション機能は、トリガーで発生したイベント情報を元に処理(=アクション)を実施する機能です。

アクションには、以下の要素があります

- アクション
  障害通知を行う条件

- 実行内容
  通知する送信機能、通知内容

- 復旧時の実行内容
  復旧通知の内容

- 更新時の実行内容
  障害対応コメント入力時、深刻度の変更時の通知内容

アクション

アクションタブには、アクション名、条件式、有効・無効を設定します。重要なのはアクションを実施する条件式です。条件には以下のようなものがあります。

- アプリケーション
  - 設定したアプリケーション名で条件を指定する
  - equals(一致する)、contains (文字列を含む)、does not contain(文字列を含まない)
- タグ
  - 障害のタグ名で条件を指定する
  - equals(一致する)、does not equal(一致しない)、contains (文字列を含む)、does not contain(文字列を含まない)

- タグ値
  - 障害のタグの値を指定する
  - equals(一致する)、does not equal(一致しない)
- ホストグループ・ホスト・テンプレート
  - 監視アイテムが属するホストグループ・ホスト・テンプレートで条件を指定する
  - equals(一致する)、does not equal(一致しない)

- トリガー
  - トリガー名を設定して条件を指定する
  - equals(一致する)、does not equal(一致しない)
- トリガーの深刻度
  - トリガーの深刻度を設定して条件を指定する
  - equals(一致する)、does not equal(一致しない)、is greater than or equals(以上)、is less than or equals(以下)

- 期間
  - 曜日、時間を指定して条件を指定
  - in(指定期間内)、not in(指定期間外)

これらの条件は、ZabbixのWeb UIにより既存のアイテムを指定することが出来ます。また以下の論理演算子で複数条件を指定可能です。

-  And
-  Or
-  And/OR
自動的にAnd/Orで組み合わせる
またA or (B and C)のような、条件式を自由に設定することも可能です。

実行内容

アクションの実行では、メッセージの送信とリモートのコマンドを選択できます。この実行は複数指定可能です。

メッセージの送信

メッセージの送信は、Email・Jabber・SMS・EZ Textingサービスへの送信機能が用意されています。日本ではEmail以外のメディアがあまり使われていません。アクションではZabbix Server側にアラートスクリプトを配置し、そのスクリプトを起動することが出来ます。この機能を使用すると、標準でサポートしていないSNSや電話サービス経由での通知を行うことが出来ます。
このメッセージ送信先には、予めユーザグループもしくはユーザを作成する必要があります。メッセージ送信方法は、ユーザグループ・ユーザで設定します。

送信内容や題名を指定することが可能です。これらの内容にはZabbixのマクロでホスト名・トリガー名・発生時間などの情報を自由に設定することが可能です。

コマンドの実行

Zabbix server/agentでのコマンド実行のほか、リモートホストのコマンドを実行可能です。
コマンドを実行するには、以下の項目を指定します。

- 対象ホスト

  - 障害が発生したホスト
  - 任意のホスト
  - 任意のホストグループ

- 実行タイプ

  - IPMI
    対象のIPMIデバイスを使用して、機器のpower on/off/reset を実施する
  - カスタムスクリプト
    以下のホストで、Zabbix プロセスから指定コマンドを実行する
    実行時のユーザがzabbixユーザであることに注意し、必要であればsudoなどの設定を行う
    - Zabbix Agent
    - Zabbix Server
    - Zabbix Server/Zabbix Proxy
  - ssh/telnet
    接続のための認証方式、ユーザ名、パスワード、公開鍵・秘密鍵、鍵のパスフレーズを指定する
  - グローバルスクリプト
    グローバルスクリプトは、ZabbixのWeb UIから設定できるコマンドです

- コマンド

  実行するコマンドを指定します。IPMIは「powe *」を、カスタムスクリプト/ssh/telnetはOSをコマンドを、グローバルスクリプトは自身の設定を指定します。

復旧時/更新時の

障害が復帰した場合、もしくは障害のステータスが変更されたときに実行する内容を指定します。指定内容はコマンドの実行と同様です。

終わりに

今回はZabbixのアクション機能について説明しました。アクションにより、管理者へのメール・SNS通知や自動復旧するためのコマンド実行を行うことが出来ます。
次回は、複数ホストを設定するのに役立つサービスディスカバリについて説明しようと思います。次回をお楽しみに。