トリガーの依存関係

トリガーの依存関係は、根本原因に関連しないアラートを回避するために使用できます。

すべてのベストプラクティスを参照してください。

概要

あるホストの可用性が別のホストに依存する場合があります。 ルーターの背後にあるサーバーは、ルーターが停止すると到達不能になります。 両方にトリガーを設定していると、実際にはルーターだけが原因であるにもかかわらず、2台のホストが停止したという通知を受け取る可能性があります。

このような場合、ホスト間に依存関係を設定すると便利です。 依存関係を設定すると、依存するホストの通知を保留し、ルート障害についてのみ通知を送信できます。

Zabbixはホスト間の依存関係を直接サポートしていませんが、より柔軟な別の方法であるトリガー依存関係を使用して定義できます。 1つのトリガーは、1つ以上のトリガーに依存できます。

この簡単な例では、サーバーのトリガー設定フォームを開き、ルーターの対応するトリガーに依存するように設定します。 この依存関係を設定すると、依存先のトリガーが「PROBLEM」状態である限り、サーバーのトリガーは状態を変更しません。そのため、依存するアクションは実行されず、通知も送信されません。

サーバーとルーターの両方が停止しており、「サーバー停止」トリガーと「ルーター停止」トリガーの間に依存関係が設定されている場合、Zabbixは依存するトリガーに対するアクションを実行しません。

親トリガーがPROBLEM状態にある間、依存するトリガーは信頼できない値を報告する可能性があります。 そのため、依存するトリガーは、親トリガー(上記の例ではルーター)が次のいずれかになるまで再評価されません。

  • 「PROBLEM」状態から「OK」状態に戻る
  • 状態が「PROBLEM」から「UNKNOWN」に変わる
  • date and time関数や nodata()関数を使用して、手動、相関、または関数によってクローズされる
  • 依存するトリガーに関与していないアイテムの値によって解決される
  • 無効になる、無効なアイテムを持つ、または無効なアイテムのホストになる

上記のいずれの場合も、依存するトリガー(サーバー)は、新しいメトリクスを受信したときにのみ再評価されます。 つまり、依存するトリガーはすぐには更新されない場合があります。

また、次の点にも注意してください。

  • 循環依存にならない限り、任意のホストのトリガーから別の任意のホストのトリガーにトリガー依存関係を追加できます。
  • あるテンプレートから別のテンプレートにトリガー依存関係を追加できます。 テンプレートAのトリガーがテンプレートBのトリガーに依存する場合、テンプレートAはテンプレートBと一緒にのみホスト(または別のテンプレート)にリンクできます。一方、テンプレートBは単独でホスト(または別のテンプレート)にリンクできます。
  • テンプレートのトリガーからホストのトリガーにトリガー依存関係を追加できます。 この場合、そのテンプレートをホストにリンクすると、トリガーが依存していた同じトリガーテンプレートに依存するホストトリガーが作成されます。 これにより、例えば、一部のトリガーがルーター(ホスト)のトリガーに依存するテンプレートを作成できます。 このテンプレートにリンクされたすべてのホストは、その特定のルーターに依存します。
  • ホストのトリガーからテンプレートのトリガーにトリガー依存関係を追加することはできません。
  • トリガープロトタイプから、別のトリガープロトタイプ(同じローレベルディスカバリールール内)または実際のトリガーにトリガー依存関係を追加できます。 トリガープロトタイプは、別のLLDルールのトリガープロトタイプや、トリガープロトタイプから作成されたトリガーに依存することはできません。 ホストのトリガープロトタイプは、テンプレートのトリガーに依存できません。

設定

依存関係を定義するには、次の手順に従います。

  1. トリガー設定フォームの依存関係タブを開きます。

  2. 依存関係セクションで追加をクリックし、そのトリガーが依存する1つ以上のトリガーを選択します。

  3. 更新をクリックします。

これで、トリガーの依存関係が一覧に表示されます。

複数の依存関係の例

たとえば、ホストは Router2 の背後にあり、Router2 は Router1 の背後にあるとします。

Zabbix - Router1 - Router2 - Host

Router1 がダウンしている場合、当然ながらホストと Router2 も到達不能ですが、ホスト、Router1、Router2 の 3 つすべてがダウンしているという通知を受け取るのは過剰です。

そのため、この場合は 2 つの依存関係を定義します。

the 'Host is down' trigger depends on the 'Router2 is down' trigger
the 'Router2 is down' trigger depends on the 'Router1 is down' trigger

'Host is down' トリガーの状態を変更する前に、Zabbix は対応するトリガーの依存関係を確認します。 そのような依存関係が見つかり、そのうちのいずれかのトリガーが Problem 状態である場合、トリガーの状態は変更されず、アクションは実行されず、通知も送信されません。

Zabbix はこの確認を再帰的に行います。 Router1 または Router2 に到達できない場合、Host のトリガーは更新されません。