3 トリガーの依存関係

概要

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

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

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

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

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

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

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

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

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

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

設定

依存関係を定義するには、次の手順を実行します。

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

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

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

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

複数の依存関係の例

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

Zabbix - Router1 - Router2 - ホスト

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

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

'Host is down' トリガーは 'Router2 is down' トリガーに依存する
'Router2 is down' トリガーは 'Router1 is down' トリガーに依存する

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

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