トリガーの依存関係

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

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

概要

あるホストの可用性が別のホストに依存する場合があります。ルーターの背後にあるサーバーは、ルーターがダウンすると到達不能になります。 両方にトリガーが設定されている場合、2つのホストがダウンしたという通知を受け取ることがありますが、実際にはルーターだけが原因だったということになります。

このような場合、ホスト間の依存関係が役立つことがあります。依存関係を設定すると、依存している側の通知を抑制し、根本的な問題の通知だけを送信することができます。

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

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

サーバーとルーターの両方がダウンしていて依存関係がある場合、Zabbixは依存しているトリガーのアクションを実行しません。

親トリガーが障害状態の場合、その依存トリガーは信頼できない値を報告する可能性があります。 したがって、親トリガー(上記の例ではルーター)が以下のいずれかの状態になるまで、依存トリガーは再評価されません。

  • 「障害」から「正常」状態に戻る
  • 「障害」から「不明」状態に変わる
  • 手動、相関、または日付と時刻nodata()関数の助けでクローズされる
  • 依存トリガーに関与していないアイテムの値によって解決される
  • 無効化されている、無効なアイテムまたは無効なアイテムホストがある

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

また、

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

設定

依存関係を定義するには、トリガーの設定フォームの「依存関係」タブを開きます。「依存関係」ブロックで「追加」をクリックし、トリガーが依存する1つまたは複数のトリガーを選択します。

「更新」をクリックします。これで、トリガーのリストに依存関係が表示されます。

複数の依存関係の例

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

Zabbix - Router1 - Router2 - Host

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

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

「ホストがダウンしている」トリガーは「Router2がダウンしている」トリガーに依存する
「Router2がダウンしている」トリガーは「Router1がダウンしている」トリガーに依存する

「ホストがダウンしている」トリガーのステータスを変更する前に、Zabbixは対応するトリガーの依存関係をチェックします。そのような依存関係が見つかり、それらのトリガーのいずれかが障害状態の場合、トリガーの状態は変更されず、アクションは実行されず、通知も送信されません。

Zabbixはこのチェックを再帰的に実行します。Router1またはRouter2が到達不能な場合、ホストのトリガーは更新されません。