我正在configuration一个方法来允许Zabbix Agentd服务在抛出触发器时(使用Git作为容器)自动更新它们自己的二进制文件。 两个触发器到位:
{Template App Zabbix Agent:vfs.file.exists[/opt/zabbix/.git/config].last()}=0 {Template App Zabbix Agent:vfs.file.cksum[/opt/zabbix/sbin/zabbix_agentd].last()}<>{$LATESTAGENT} $LATESTAGENT是已编译的zabbix_agentd二进制文件的cksum()值。 触发器1只是确保触发器2是否触发,代理将能够运行远程命令来执行git pull并获取最新的二进制文件。
触发器运行正常,并显示我的系统代理版本不alignment。 从那以后,我configuration了几个动作去跟他们做肮脏的工作。
git init 。 git pull origin master来获取最新的bin。 这些只是我创build的全局脚本,所以我可以通过单击任何主机并为主机select适当的脚本来手动testing其工作。
由于我先创build了触发器,它们已经被“触发”了。 然而,现在我已经采取行动去处理这些触发器,我希望这些触发器能够“重新触发”(或者重新初始化或者重新触发或者其他),以使这些行为能够完成它们的事情。 不幸的是,我真的找不到一个办法来做到这一点。 关注触发器1(git repo exists),我尝试清除vfs.file.cksum[/opt/zabbix/sbin/zabbix_agentd]键上的历史logging,但是这并不影响触发器的状态。 我已经看到一些人提到一些SQL或API的工作来手动修改触发器的状态,但感觉应该有比这更简单的东西!
任何人都知道如何让我的触发器“再次触发”,让行动做他们的事情? 感谢您的帮助!
作为一种解决方法,您可以暂时将触发器更改为“生成多个PROBLEM事件”,等到您需要的所有操作都被执行,然后再切换回来。