監視アイテムの設定の、監視間隔の動作について

お世話になります。掲題の件で質問させて頂きます。

環境:4.0.5

はじめての質問になります。
基本的な質問かもしれませんが、【監視間隔】について
ご存知の方がおられましたらご助言頂けますと幸いです。

ホストの監視アイテムの設定で、
【キー】としてエージェント側のバッチファイルの実行を指定し、
【監視間隔】を「60s」として設定しようかと考えています。

この【監視間隔】は、
バッチが実行開始した時点から、60秒後に次回実行なのでしょうか。
それとも
バッチが完了した時点から、60秒後に次回実行なのでしょうか。

バッチ処理が70秒かかってしまった場合は、2重起動になるのでしょうか。

ご経験上、ご存知の方がおられましたらお教えいただけないでしょうか。

よろしくお願いいたします。

コメント表示オプション

お好みのコメント表示方法を選び「設定の保存」をクリックすると変更が反映されます。
ユーザー Yasumi の写真

状況がよく分からないのですが、
Zabbix⇒監視対象マシンに、バッチ実行させようとしているということでしょうか。

ユーザー yoshidatetsuro の写真

コメントありがとうございます。
はい。監視対象マシン上のバッチを実行し、トリガーでその結果を取得して、警告通知するという仕掛けで考えています。

ユーザー Yasumi の写真

なるほど。より詳細を教えてください。

監視対象マシン上のバッチを実行する場合、
下記のような流れをたどると予想していますが、下記とは違うのでしょうか。

(例)
アイテム「CPU使用率取得」⇒トリガー「CPU使用率高負荷」の発報⇒アクション「CPU使用率高負荷でバッチ実行(たとえば再起動)」⇒監視対象マシン

ユーザー yoshidatetsuro の写真

■アイテム
キー:system.run[C:\zabbix\SQLCmd.bat]
監視間隔:60s

■トリガー
{hostname:system.run[C:\zabbix\SQLCmd.bat].str(0 行処理されました)}=0 and {hostname:system.run[C:\zabbix\SQLCmd.bat].diff()}=1

エージェント側のSQLCmd.bat内で、SQLDB内のテーブルから
SELECTを発行して結果を取得し、警告通知させるような仕掛けを考えており、
このクエリが60秒以上かかった場合は、2重起動になるのかどうか分からなかったためです。

ユーザー Yasumi の写真

ZabbixServerのconfにはタイムアウトに関する設定があります。
アイテム取得の際に「Timeout」値を超えると「応答なし」と判定されて、
アイテムは「UnreachableDelay」間隔で再取得を試みます。

挙動としては上記のようになります。

なお「取得不可」の場合は、「取得不可アイテムの更新間隔」が適用されます。

ユーザー TNK の写真

ZabbixサーバーとZabbixエージェントのタイムアウト設定は最長30
秒までしか設定できません。
最長の30秒に設定したとしても30秒を超えるとYasumiさんが書かれ
ている通り、処理は中断され、アイテムの状態としては「取得不可」
の状態になります。

つまり、system.run[]は30秒以上かかるようなバッチ処理を実行す
ることには使用できません。

atコマンドなどを使用して定期的に実行させ、Zabbixではその結果
が出力されたファイルを監視するような構成にした方が良いと思い
ます。

ユーザー yoshidatetsuro の写真

TNK様、Yasumi様
とてもためになりましたありがとうございます!!!
30秒以上かかるような処理は仕掛けを見直す必要ありと理解致しました。

なお、バッチの冒頭にspleep 10秒を入れてみましたところ
15:17:22.08
15:18:21.80
15:20:21.82
1秒以上ずれていないので、Zabbixとしては、
バッチを起動指示したタイミングから、60s間隔で実行されていることが分かりました。

お教えいただいた内容を参考にして、見直してみます。

以上、ありがとうございました=!