了解Zabbix触发器

我有一个zabbix设置项目来监视一个日志文件在一个zabbix客户端上:

log["/var/log/program_name/client.log","ERROR:","UTF-8",100] 

并确定何时该日志文件得到更多的错误的触发器:

 {Template_Linux:log["/var/log/program_name/client.log","ERROR:","UTF-8",100].change(0)}#0 

当日志文件第一次得到ERROR时,这个触发器会被触发,但是这个第一个触发器只是在Monitoring-> Triggers中永远存在。 我的理解是,下次服务器检查log [“/ var / log / program_name / client.log”,“ERROR:”,“UTF-8”,100]的值,并且看到它没有改变触发器将消失。 显然情况并非如此。 有人能解释为什么这个第一个触发器不会消失吗?

最终我的目标是每当ERROR被添加到该日志文件时收到一封电子邮件,但我想了解触发器是如何工作的。

“日志”代理程序项目默认检查整个日志,您必须告诉它使用“跳过”模式来避免处理较旧的数据。 只需在参数的最后添加一个“,跳过”到日志项目。 仔细检查文件中的这个页面 。

模板项目和触发器似乎都没问题。

  • 是附加到该主机上的原始模板的项目还是你克隆它,并作出了一些改变?
  • 该项目是否正确更新? (检查监测|最新数据)?

.change(0)的行为与您所期望的相同,如果最后一个string和前一个string不同,则返回1。

只是为了debugging,请尝试以下操作:

 {Template_Linux:log["/var/log/program_name/client.log","ERROR:","UTF-8",100].last(0)}#{Template_Linux:log["/var/log/program_name/client.log","ERROR:","UTF-8",100].prev(0)}