[comment]: # translation:outdated

[comment]: # ({d5d0048d-d5d0048d})
# 3 トリガーの依存関係

[comment]: # ({/d5d0048d-d5d0048d})

[comment]: # ({26bda053-26bda053})
#### 概要

あるホストの可用性が他のホストに依存することがあります。ルータの背後にあるサーバは、ルータがダウンすると到達不能になります。<br>
両方のホストに対して trigger を設定した場合、2つのホストがダウンしたことを通知されるかもしれません - ルーターだけが悪者です。

ここで、ホスト間の依存関係が役に立つかもしれません。依存関係を設定することで、依存関係にあるホストの通知を保留し、<br>
根本的な問題に対する通知のみを送信することができます。

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

この例では、server trigger の設定フォームを開き、ルータのそれぞれの trigger に依存するように設定します。<br>
そのような依存関係では、server の trigger は、依存する trigger が 'PROBLEM' 状態である限り、状態を変更しません。<br>
従って、依存するアクションは取られず、通知も送られません。<br>

server とルータの両方がダウンしており、依存関係が存在する場合、Zabbix は依存する trigger のアクションを実行しません。

依存する trigger のアクションは、依存する trigger が以下の状態である場合、実行されません。

- 状態が 'PROBLEM' から 'UNKNOWN' に変更された場合。
- 手動で、相関関係で、または時間ベースの関数の助けを借りて、閉じられます。
- 依存する trigger に関与していない item の値によって解決される。
- 無効にされた、無効にされた item がある、または無効にされた item があるホスト

上記のケースの "二次"（従属）トリガは、すぐには更新されないことに注意してください。親 trigger がPROBLEM状態の間、<br>
その従属 trigger は、信頼できない値を報告するかもしれません。従って、従属 trigger は、親 trigger がOK状態にあり、<br>
信頼できるメトリクスを受け取った後でのみ、再評価され、状態が変更されます。<br>

また

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

[comment]: # ({/26bda053-26bda053})

[comment]: # ({c4578b73-c4578b73})
#### 設定

依存関係を定義するには、トリガー[configuration form](trigger#configuration)で Dependencies タブを開きます。
'Dependencies' ブロックの *Add* をクリックし、trigger が依存する1つ以上の trigger を選択します。

![](../../../../assets/en/manual/config/triggers/dependency.png)

*Update* をクリックします。これで、trigger はリスト内の依存関係を表示するようになりました。

![](../../../../assets/en/manual/config/triggers/dependency_list.png)

[comment]: # ({/c4578b73-c4578b73})

[comment]: # ({4dc2ce6b-4dc2ce6b})
##### 複数の依存関係がある場合の例

例えば、あるホストがルータ2の背後にあり、ルータ2がルータ1の背後にある場合です。

    Zabbix - ルータ1 - ルータ2 - ホスト

ルータ1がダウンした場合、当然ホストとルータ2も到達不能になりますが、ホスト、ルータ1、ルータ2がすべてダウンしたという通知を<br>
3回受け取りたくはありません。

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

    Host is down' trigger は 'Router2 is down' trigger に依存する。
    Router2 is down' trigger は 'Router1 is down' trigger に依存する。

'ホストがダウンしている' trigger のステータスを変更する前に、Zabbixは対応する trigger の依存関係を確認します。<br>
もし、見つかった場合、それらの trigger の1つが '問題' 状態であれば、trigger のステータスは変更されず、アクションは実行されず、通知も送信されません。

Zabbix はこのチェックを再帰的に実行します。ルータ1またはルータ2が到達不能の場合、Host trigger は更新されません。

[comment]: # ({/4dc2ce6b-4dc2ce6b})
