我正在使用Zabbix来监控日志文件。目标是捕获所有具有" ERROR"日志文件中的关键字并向我发送通知
日志文件的内容为:
20160905:154718错误:出现错误...
20160905:154718错误:你好
20160905:154718错误:再次问好
20160905:154718错误:再见
所以,理想情况下,我希望在我的邮件中获得以下内容:
触发:日志中出现错误
触发状态:问题
触发严重性:未分类
触发网址:
项目值:
在前端,我将项目配置为:
名称:虚拟日志
类型:Zabbix剂(活性)
键:logrt [/root/test_log/test.log," ERROR"]
信息类型:日志
记录时间格式:yyyyMMdd:hhmmss
我的触发器表达式是:
{Centos的远程代理:logrt [/root/test_log/test.log," ERROR"]正则表达式(ERROR)} = 1
但是,我收到了日志文件的第一行,在我的邮件中:
触发:日志中出现错误
触发状态:问题
触发严重性:未分类
触发网址:
项目值:
原始事件ID:133
我觉得我的触发器表达可能不正确。任何建议将不胜感激。
答案 0 :(得分:2)
不,Zabbix并不真正支持,你的表达可能是正确的。您看到的多个项目值是指触发器表达式 - 例如,如果您的触发器正在检查两个项目,如itemA.last()>0 and itemB.last()<0
,则第一行将显示itemA
的值,第二行将显示价值itemB
。
您可以尝试使用{{HOST.NAME}:{ITEM.KEY}.last(#2)}
之类的内容来显示倒数第二个值,但即使这样可行并且您要添加最多last(#4)
行,您也会收到有关每个值的电子邮件,之前的值也包含在内 - 所以假设最近的值位于顶部,您将收到4封这样的电子邮件:
电子邮件1
bye
电子邮件2
hello again
bye
电子邮件3
hello
hello again
bye
电子邮件4
there is an error...
hello
hello again
bye