0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【ZABBIX7.0LTS】トリガーの依存関係について(複数の依存関係)

Posted at

はじめに

以下のようにZABBIXから監視対象③に対して死活監視を行っている場合、監視対象①または②が死活監視でNGとなったときにトリガー依存関係がどのように機能するのか気になった。

【死活監視経路】
ZABBIX(死活監視) → 監視対象① → 監視対象② → 監視対象③

そこで、以下のZabbix公式ドキュメント「複数の依存関係」に記載されている内容を基に、実際に検証を行った。

[ZABBIX7.0] - 3 トリガーの依存関係
image.png

検証環境

ZABBIXサーバー1台(ver. 7.0):
ホスト名:zabbix

監視対象サーバー3台(エージェント導入済み):
ホスト名:server1、server2、server3

※4台とも同セグメント

死活監視テンプレート(00_Ping_Check):
[アイテム]
image.png
[トリガー]
image.png

検証準備

まず、監視対象サーバー(server1、server2、server3)に対して作成したテンプレートを紐づける。紐づけた後は、以下の対応を行う。

・「server1」のトリガーに対して、依存関係は設定しない。
image.png
・「server2」のトリガーに対して、依存関係として「server1」のトリガーを設定する。
image.png
・「server3」のトリガーに対して、依存関係として「server2」のトリガーを設定する。
image.png

検証 ①:[server1:OK] [server2:OK] [server3:NG]

死活監視の状態が「server1:OK」、「server2:OK」、「server3:NG」の場合における
トリガーの発動状況を確認する。

image.png

image.png

image.png

想定通りに「server3」のトリガーが発動した。

検証 ②:[server1:OK] [server2:NG] [server3:NG]

死活監視の状態が「server1:OK」、「server2:NG」、「server3:NG」の場合における
トリガーの発動状況を確認する。

image.png

image.png

image.png

「server2」のトリガーは発動した。しかし、「server3」の死活監視状態がNGであるにもかかわらず、トリガーは発動していない。これは、「server3」のトリガーに「server2」のトリガーを依存関係として設定しているためである。

検証 ③:[server1:NG] [server2:NG] [server3:NG]

死活監視の状態が「server1:NG」、「server2:NG」、「server3:NG」の場合における
トリガーの発動状況を確認する。

image.png

image.png

image.png

「server1」のトリガーは発動した。しかし、「server2」と「server3」の死活監視状態がNGであるにもかかわらず、トリガーは発動していない。これは、「server2」のトリガーに「server1」のトリガーを依存関係として設定し、さらに「server3」のトリガーに「server2」のトリガーを依存関係として設定しているためである。

検証 ④:[server1:NG] [server2:OK] [server3:NG]

死活監視の状態が「server1:NG」、「server2:OK」、「server3:NG」の場合における
トリガーの発動状況を確認する。

image.png

image.png

image.png

「server1」のトリガーは発動した。しかし、「server3」の死活監視状態がNGであるにもかかわらず、トリガーは発動していない。これは、「server2」のトリガーに「server1」のトリガーを依存関係として設定し、さらに「server3」のトリガーに「server2」のトリガーを依存関係として設定しているためである。

Zabbixはトリガーを発動する際、依存関係を再帰的にチェックする仕組みになっている。そのため、この依存関係の設定により、「server3」のトリガーは結果として発動しなかった。

追加検証

1つのトリガーに複数の依存関係が設定されている場合、どのように動作するのかが気になったため、追加で検証を行うことにした。(依存関係は、「OR」なのか「AND」なのか。)

トリガーの依存関係を下記の通りに設定する。

・「server1」のトリガーに対して、依存関係は設定しない。
image.png
・「server2」のトリガーに対して、依存関係は設定しない。
image.png
・「server3」のトリガーに対して、依存関係として「server1」と「server2」のトリガーを設定する。
image.png

死活監視の状態が「server1:OK」、「server2:NG」、「server3:NG」の場合における
トリガーの発動状況を確認する。

image.png

image.png

「server2」のみがトリガーを発動した。「server1」の死活監視状態がOKであるにもかかわらず、「server3」のトリガーは発動していない。このことから、複数の依存関係は「OR」条件で動作していることが分かる。

念のため:
[server1:NG] [server2:OK] [server3:NG]
image.png
image.png

[server1:NG] [server2:NG] [server3:NG]
image.png
image.png

[server1:OK] [server2:OK] [server3:NG]
image.png
image.png

以上

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?