Zabbix日志监控:如何获取通知,以便所有错误日志出现在一封邮件中

时间:2016-09-06 03:13:43

标签: logging monitoring zabbix

我正在使用Zabbix来监控日志文件。目标是捕获所有具有" ERROR"日志文件中的关键字并向我发送通知

日志文件的内容为:

20160905:154718错误:出现错误...
20160905:154718错误:你好 20160905:154718错误:再次问好 20160905:154718错误:再见

所以,理想情况下,我希望在我的邮件中获得以下内容:

触发:日志中出现错误
触发状态:问题
触发严重性:未分类
触发网址:

项目值:

  1. 虚拟日志(Centos-remote-agent:logrt [/root/test_log/test.log," ERROR"]):20160905:154718错误:出现错误....
  2. 虚拟日志(Centos-remote-agent:logrt [/root/test_log/test.log," ERROR"]):20160905:154718错误:你好
  3. 虚拟日志(Centos-remote-agent:logrt [/root/test_log/test.log," ERROR"]):20160905:154718错误:你好再次发送
  4. 虚拟日志(Centos-remote-agent:logrt [/root/test_log/test.log," ERROR"]):20160905:154718错误:再见
  5. 在前端,我将项目配置为:

    名称:虚拟日志
    类型:Zabbix剂(活性)
    键:logrt [/root/test_log/test.log," ERROR"]
    信息类型:日志
    记录时间格式:yyyyMMdd:hhmmss

    我的触发器表达式是:

    {Centos的远程代理:logrt [/root/test_log/test.log," ERROR"]正则表达式(ERROR)} = 1

    但是,我收到了日志文件的第一行,在我的邮件中:

    触发:日志中出现错误
    触发状态:问题
    触发严重性:未分类
    触发网址:

    项目值:

    1. 虚拟日志(Centos-remote-agent:logrt [/root/test_log/test.log," ERROR"]):20160905:154718错误:出现错误....
    2. UNKNOWN UNKNOWN UNKNOWN ): UNKNOWN
    3. UNKNOWN UNKNOWN UNKNOWN ): UNKNOWN
    4. 原始事件ID:133

      我觉得我的触发器表达可能不正确。任何建议将不胜感激。

1 个答案:

答案 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