トリガーの依存関係

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

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

概要

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

このような場合、ホスト間の依存関係が役立ちます。 依存関係を設定すると、依存先の問題に起因する通知を抑止し、根本原因の問題に対する通知のみを送信できます。

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

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

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

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

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

上記のすべてのケースにおいて、依存トリガー(サーバー)は、そのトリガーに対する新しいメトリクスを受信したときにのみ再評価されます。 これは、依存トリガーが直ちに更新されない可能性があることを意味します。

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

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

設定

依存関係を定義するには:

  1. トリガーの設定フォームで、Dependenciesタブを開きます。

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

  3. Updateをクリックします。

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

複数の依存関係の例

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

Zabbix - Router1 - Router2 - Host

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

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

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

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

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