DBに反映されてもzabbixServerに反映されていない
お世話になっております。
V3.0.16を使用しております。
自作シェルスクリプト内でzabbixAPIを使ってtriggerのステータス変更を行なった直後、(Sleepなどは明示的に指定せず、約1秒後に)zabbixAgentやミドルウェアのプロセスを停止しています。
zabbixAPIによるトリガーのステータス変更はDBにも即時反映されることはMariaDBにSQLを投げて確認しています。
しかし、DBに反映されているものの、zabbixServer側に反映されていないようで、障害通知が送られてしまいます。
`zabbix_server -R config_cache_reload` をAPIコール直後に叩いたり、zabbix_server.confのConfigUpdateFrequencyを1秒にしても、障害として検知されてしまいます。
主に障害として検知されてしまうのはzabbixAgentのagent.ping().nodata()のnodata関数なので、timerプロセスに設定が即時反映されていないのだと思います。
timerプロセスにDBの値を即時反映することは可能でしょうか?またはそもそもtimerプロセスが原因ではないですか?
よろしくお願いします。
TNK - 投稿数: 4769
データベース変更後、config_cache_reloadを実行したとしても、
起動されているZabbixサーバーのプロセスすべてに瞬時に反映が終
了するとは限らないので、ある程度の時間の余裕を持たせた方が良
いでしょう。
強制的に反映させたいのであれば、Zabbixサーバーサービスの再起
動も検討してみてはいかがでしょうか?
yudai - 投稿数: 11
TNKさん
回答ありがとうございます。
>ある程度の時間の余裕を持たせた方が良いでしょう。
>Zabbixサーバーサービスの再起動
プロセスに設定が反映されたか確認できれば、Coolに作れそうですが。。
ひとまずはAPI実行後に45秒のsleepを入れると誤検知しなくなりました。
ありがとうございました!