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 の写真

データベース変更後、config_cache_reloadを実行したとしても、
起動されているZabbixサーバーのプロセスすべてに瞬時に反映が終
了するとは限らないので、ある程度の時間の余裕を持たせた方が良
いでしょう。

強制的に反映させたいのであれば、Zabbixサーバーサービスの再起
動も検討してみてはいかがでしょうか?

ユーザー yudai の写真

TNKさん

回答ありがとうございます。

>ある程度の時間の余裕を持たせた方が良いでしょう。
>Zabbixサーバーサービスの再起動

プロセスに設定が反映されたか確認できれば、Coolに作れそうですが。。
ひとまずはAPI実行後に45秒のsleepを入れると誤検知しなくなりました。

ありがとうございました!