Sidebar

Zabbix Summit 2022
View presentations

1 アクション

Zabbixは、イベントに対応するために様々なオペレーションを実行します。Zabbixで生成される1つまたは複数のイベントに対してアクションを1つ定義できます。

アクションの属性を以下に示します。

パラメータ 説明
名前 一 なアクション名。
イベントソース イベントの発 元。
現在は以下の3つのソースがサポートされています。
トリガー - トリガーのステータスの変化によって生成されるイベント
ディスカバリ - オートディスカバリモジュールによって生成されるイベント
自動登録 - 新規アクティブエージェントによって生成されるイベント
エスカレーションを有効 エスカレーションを有 にします。有効にすると、オペレーションに対して定義されているオペレーションステップに従ってアクションがエスカレートされます。
期間(秒) エス レーションステップの増分の期間。
イベントソース イベントの発 元。
トリガー - トリガーによって生成されたイベントに対してアクションが実行されます。
ディスカバリ - ディスカバリイベントに対してアクションが実行されます。
デフォルトの件名 通知のデフォル の件名。マクロを使用できます。
デフォルトのメッセージ 通知のデフォルトのメ セージ。マクロを使用できます。
リカバリメッセージ 有効にすると、元 問題が解決された後でリカバリメッセージが送信されます。リカバリメッセージは、以前にこの問題に関する任意のメッセージを受け取ったユーザに送信されます。
リカバリの件名 リカバリメッ ージの件名。マクロを使用できます。
リカバリメッセージ リカバリメッセー 。マクロを使用できます。
ステータス アクショ のステータス。
有効 - アクションは有効です。
無効 - アクションは無効です。

警告: リカバリメッセージやエスカレーション機能を有効にする前に、「Trigger value = PROBLEM」コンディションをアクションに追加してください。追加しない場合、修復イベントも同様にエスカレートされます。

アクションコンディション

アクションは、定義されているコンディションの組み合わせを満たす場合にのみ実行されます。

トリガーをソースとするイベントには、以下のコンディションを定義できます。

コンディションタイプ サポートされている 算子 説明
アプリケーション =
= -含まれる  含含まれない 含ま アプリケーションの一部であるトリガーで生成されたイベント
れる** - アプリケーションの一部であり、特定の文字列を含むトリガーで生成されたイベント
ない** - アプリケーションの一部であり、特定の文字列を含まないトリガーで生成されたイベント
ホストグループ =
イベントを生<> したトリガーが登録されているホストグループと比較します。
= - このホストグループで生成されたイベント
<> - 別のホストグループで生成されたイベント
ホストテンプレート =
トリガーが属する<> ストテンプレートと比較します。
= - このホストテンプレートから継承されたトリガーで生成されたイベント
<> - 別のホストテンプレートから継承されたトリガーで生成されたイベント
ホスト =
イベ<> トを生成したトリガーが登録されているホストと比較します。
= - このホストで生成されたイベント
<> - 別のホストで生成されたイベント
トリガー =
イベン<> を生成したトリガーと比較します。
= - このトリガーで生成されたイベント
<> - 別のトリガーで生成されたイベント
トリガーの名前(名前) 含まれる
イベントを生成したトリガ含まれない **含ま 名と比較します。
る** - 文字列がトリガー名に含まれる(大文字と小文字は区別される)
含まれない - 文字列がトリガー名に含まれない(大文字と小文字は区別される)
トリガーの深刻度 =
トリガーの深刻<>
>=
<=
と比較します。= - 指定されたトリガーの深刻度と等しい
<> - 指定されたトリガーの深刻度と等しくない
>= - 指定されたトリガーの深刻度以上
<= - 指定されたトリガーの深刻度以下
トリガーの値 = トリガーの と比較します。
= - 指定されたトリガーの値([OK]または[障害])と等しい
期間 期 中 特定の期 内に生成されたイベントです。
期間中 - イベント生成時刻が期間内期間は次の形式で指定します: dd-dd,hh:mm-hh:mm;dd-dd,hh:mm:hh:mm;…
メンテナンスのステータス =
ホストがメンテナンス状<> にあるかどうかを確認します。
= - ホストはメンテナンスモードです。
<> - ホストはメンテナンスモードではありません。

トリガーの値:

トリガーのステータスが正常から障害に変化した場合、トリガーの値は障害 トリガーのステータスが障害から正常に変化した場合、トリガーの値は正常

ステータスが正常→不明→障害と遷移した場合は正常→障害と同様に、障害→不明→正常と遷移した場合は障害→正常と同様に、それぞれ処理されます。

ディスカバリをソースとするイベントには、以下のコンディションを定義できます。

コンディションタイプ サポートされている 算子 説明
ホストのIPアドレス =
検出されたホス<> のIPアドレスが指定されたIPアドレスの範囲に含まれているかどうかを比較します。
= - ホストのIPアドレスが範囲に含まれる
<> - ホストのIPアドレスが範囲に含まれない
サービスのタイプ =
検出されたサー<> スをチェックします。
= - 検出されたサービスからのイベント
<> - 別のサービスからのイベント
サービスのポート =
検出されたサー<> スのTCPポート番号が指定されたポート番号の範囲に含まれているかどうかを比較します。
= - サービスのポートが範囲に含まれる
<> - サービスのポートが範囲に含まれない
ディスカバリのステータス = UP - ホス アップイベントおよびサービスアップイベントと一致
DOWN - ホストダウンイベントおよびサービスダウンイベントと一致
アップタイム/ダウンタイム >=
ホストダウンイベントお<= びサービスダウンイベントの場合はダウンタイムを比較します。ホストアップイベントおよびサービスアップイベントの場合はアップタイムを比較します。
>= - アップタイム/ダウンタイムが指定された値以上
>= - アップタイム/ダウンタイムが指定された値以上パラメータは秒単位で指定します。
受信した値 =
エージェ<>
>=
<=
like not
含まれる **含
ト(ZABBIX、SNMP)から受信した値と比較します。文字列の比較で判定します。
= - 受信した値と等しい
<> - 受信した値と等しくない
>= - 受信した値以上
<= - 受信した値以下
れる** - 受信した値に含まれる
含まれない - 受信した値に含まれないパラメータは文字列で指定します。パラメータは文字列で指定されます。

以下のコンディションが計算タイプ[AND/OR]で設定されている場合、

  • Host group = Oracle servers
  • Host group = MySQL servers
  • トリガー名 含まれる 'Database is down'
  • トリガー名 含まれる 'Database is unavailable'

以下のように評価されます。

(Host group = Oracle servers または Host group = MySQL servers) かつ (Trigger name like 'Database is down' または Trigger name like 'Database is unavailable')

[オペレーション]

イベントがコンディションを満たすときに1つまたは複数のオペレーションが実行されます。

Zabbixでは、以下のオペレーションがサポートされています。

  • メッセージの送信
  • リモートコマンド(IPMIを含む)

ZabbixはUTF-8でデータを送信するため、Zabbixからのメールの受信および読み取りを成功させるためには、メールのサーバ/クライアントが 'SMTP/MIME e-mail' 標準フォーマットをサポートしている必要があります。1.8.2からは、題名および本文のメッセージは 'SMTP/MIME e-mail' 標準フォーマットに従い、base64でエンコードされています。

ディスカバリをソースとするイベントでは、以下のオペレーションもサポートされています。

  • ホストの追加
  • ホストの削除
  • ホストの有効化
  • ホストの無効化
  • グループへの追加
  • グループからの削除
  • テンプレートへのリンク
  • テンプレートからリンクを削除

ホストの追加時には、標準的な gethostbyname 関数によって名前が決定されます。ホストを解決できる場合、解決名が使用されます。解決できない場合は、IPアドレスが使用されます。さらに、IPv6アドレスがホスト名に使用される場合には、すべての「:」(コロン)は「_」(アンダースコア)に置換されます。これは「:」(コロン)がホスト名として許可されていないためです。

<note important>プロキシを使用してディスカバリを行う場合であっても、現時点ではZabbixサーバにおいてホスト名のlookupが行われます。 :::

<note important>新規にディスカバリされたホストと同名のホストがZabbix設定に存在する場合、1.8より前のバージョンではその新規ホストを同名で登録します。Zabbix 1.8.1とそれ以降のバージョンでは、_N をホスト名に追加します。_N は2から始まり、増加していく番号になります。 :::

パラメータ 説明
[ステップ] このア ションに対してエスカレーションを有効にする場合、以下のエスカレーション設定を使用します。
開始 - このステップから始めて各ステップに対して実行します。
To - このステップまで実行します([開始]から始めて全てのステップに対して実行する場合は0)。
期間 - この期間の後、ステップ数を増分します。0を指定すると、デフォルトの期間が使用されます。
[オペレーションのタイプ] アクションのタイプ。 <メッセージの送信 - ユーザにメッセージを送信します。
コマンドの実行 - リモートコマンドを実行します。
イベントソース
メッセージの送信先 メッセージの送信
シングルユーザ - シングルユーザ
ユーザグループ - グループの全てのメンバー
デフォルトのメッセージ 選択すると、デフォル のメッセージが使用されます。
[件名] メ セージの件名。マクロを使用できます。
メッセージ メッセー 本体。マクロを使用できます。
リモートコマンド リモートコマン のリスト。

1.6.2以降では、イベントを生成したホスト(トリガー)に対する読み取りパーミッションを持つユーザのみに通知が送信されます。トリガー条件式の少なくとも1つのホストにアクセスできる必要があります。

メッセージとリモートコマンドでのマクロの使用

マクロを使用すると、読みやすいレポートを作成できます。

例1

Subject: {TRIGGER.NAME}: {TRIGGER.STATUS}

マクロが置き換えられて、以下のようなメッセージ件名が生成されます。

‘Processor load is too high on server zabbix.zabbix.com: ON’

例2

メッセージ: Processor load is: {zabbix.zabbix.com:system.cpu.load[,avg1].last(0)}

マクロが置き換えられて、以下のようなメッセージが生成されます。

'Processor load is: 1.45'

例3

メッセージ: 最新データ: {{HOSTNAME}:{TRIGGER.KEY}.last(0)} MAX for 15 minutes: {{HOSTNAME}:{TRIGGER.KEY}.max(900)} MIN for 15 minutes: {{HOSTNAME}:{TRIGGER.KEY}.min(900)}

マクロが置き換えられて、以下のようなメッセージが生成されます。

最新データ: 1.45 MAX for 15 minutes: 2.33 MIN for 15 minutes: 1.01