スクリプト実行が可能になるまでのタイムラグについて
お世話になっております。
スクリプト実行について質問です。
Zabbix 2.0 APIを利用して下記処理を実装していますが、2の処理がエラーになってしまいます。
1. host.createでホストおよびインタフェースを作成
2. script.executeでスクリプトを実行
1のリクエストボディ
{"jsonrpc":"2.0","method":"script.execute","params":{"scriptid":"1","hostid":"1"},"auth":"dc149fa3565fdb6e6114d87206c8abe1","id":1}
1のレスポンスボディ
{"jsonrpc":"2.0","result":{"response":"failed","value":"Zabbix agent interface is not defined for host [hostname]"},"id":1}
まだZabbix Agentの準備ができていないようなエラーに見えるのですが、ホスト作成の直後にスクリプト実行はできないのでしょうか?
また、スクリプト実行の可能な状態を監視することは可能でしょうか?(zabbix_getを利用することはできます)
TNK - 投稿数: 4769
APIを利用してホストを登録した場合、Zabbixサーバプロセス自体
に情報が反映されるまでにはタイムラグがあります。
というのもhost.createでのホスト作成は、DBに直接書き込むよう
になっていたと思いますが、script.executeを実行する場合は、
zabbix_serverを経由してスクリプトを実行することになっていた
と思いますので、host.createでDB上には登録できていても、
zabbix_serverはDBの情報を一部キャッシュして動いているので、
DBからキャッシュへ反映されるのを待つ必要があったのだと思われ
ます。
呼び出せない状態のエラー応答がわかっているのであれば、その応
答の際にはリトライを実行するような形で呼び出すようにされては
いかがでしょうか?
通常であれば、最大zabbix_server.confのCacheUpdateFrequencyで
指定されている60秒程度のタイムラグがあったかと思います。
DBMSやZabbixサーバなど各プロセスやサーバ機器の負荷状況にも依
存すると思いますので、ご注意ください。
mkt - 投稿数: 41
ご解答ありがとうございます。
(反応が遅くなり、大変申し訳無いです。メールで通知が来るものと思い込んでいました…)
CacheUpdateFrequencyが関係する件、理解できました。
ホストを登録するタイミングとスクリプトを実行するタイミングを工夫する必要ありですね。
大変参考になりました。
ありがとうございました。