監視アイテムの設定の、監視間隔の動作について
お世話になります。掲題の件で質問させて頂きます。
環境:4.0.5
はじめての質問になります。
基本的な質問かもしれませんが、【監視間隔】について
ご存知の方がおられましたらご助言頂けますと幸いです。
ホストの監視アイテムの設定で、
【キー】としてエージェント側のバッチファイルの実行を指定し、
【監視間隔】を「60s」として設定しようかと考えています。
この【監視間隔】は、
バッチが実行開始した時点から、60秒後に次回実行なのでしょうか。
それとも
バッチが完了した時点から、60秒後に次回実行なのでしょうか。
バッチ処理が70秒かかってしまった場合は、2重起動になるのでしょうか。
ご経験上、ご存知の方がおられましたらお教えいただけないでしょうか。
よろしくお願いいたします。
Yasumi - 投稿数: 380
状況がよく分からないのですが、
Zabbix⇒監視対象マシンに、バッチ実行させようとしているということでしょうか。
yoshidatetsuro - 投稿数: 4
コメントありがとうございます。
はい。監視対象マシン上のバッチを実行し、トリガーでその結果を取得して、警告通知するという仕掛けで考えています。
Yasumi - 投稿数: 380
なるほど。より詳細を教えてください。
監視対象マシン上のバッチを実行する場合、
下記のような流れをたどると予想していますが、下記とは違うのでしょうか。
(例)
アイテム「CPU使用率取得」⇒トリガー「CPU使用率高負荷」の発報⇒アクション「CPU使用率高負荷でバッチ実行(たとえば再起動)」⇒監視対象マシン
yoshidatetsuro - 投稿数: 4
■アイテム
キー: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 - 投稿数: 380
ZabbixServerのconfにはタイムアウトに関する設定があります。
アイテム取得の際に「Timeout」値を超えると「応答なし」と判定されて、
アイテムは「UnreachableDelay」間隔で再取得を試みます。
挙動としては上記のようになります。
なお「取得不可」の場合は、「取得不可アイテムの更新間隔」が適用されます。
TNK - 投稿数: 4769
ZabbixサーバーとZabbixエージェントのタイムアウト設定は最長30
秒までしか設定できません。
最長の30秒に設定したとしても30秒を超えるとYasumiさんが書かれ
ている通り、処理は中断され、アイテムの状態としては「取得不可」
の状態になります。
つまり、system.run[]は30秒以上かかるようなバッチ処理を実行す
ることには使用できません。
atコマンドなどを使用して定期的に実行させ、Zabbixではその結果
が出力されたファイルを監視するような構成にした方が良いと思い
ます。
yoshidatetsuro - 投稿数: 4
TNK様、Yasumi様
とてもためになりましたありがとうございます!!!
30秒以上かかるような処理は仕掛けを見直す必要ありと理解致しました。
なお、バッチの冒頭にspleep 10秒を入れてみましたところ
15:17:22.08
15:18:21.80
15:20:21.82
1秒以上ずれていないので、Zabbixとしては、
バッチを起動指示したタイミングから、60s間隔で実行されていることが分かりました。
お教えいただいた内容を参考にして、見直してみます。
以上、ありがとうございました=!