在Zabbix中多次触发生成

时间:2015-04-16 14:00:36

标签: monitoring zabbix

我是zabbix的新手。我有一个基本要求,即使用zabbix监视不同日志消息的发生。比如说,当有日志消息"server starting"时,zabbix应该显示该警报。这个想法是,如果服务器(重新)在最后10分钟内启动10次,那么zabbix仪表板(或任何其他地方)应该显示10次。

我为此完成了以下工作:

  1. 在模板MyTemplate:
  2. 下创建了一个项目
    Type : Zabbix Agent (Active)
    key : log[/opt/mylog/logs/abc.log,server starting]
    Type of information : Log
    Update Interval (in sec) : 30
    
    1. 使用表达式
    2. 创建了一个触发器
        

      {MyTemplate的:日志[/opt/mylog/logs/abc.log,server   起动] .logeventid(1)} = 0

      使用logeventid(1),我发现警报(触发器)只生成一次。它只在Dashboard --> Last 20 issues中出现一次。如果我转到Monitoring --> Trigger,我只会看到一次警报,尽管日志文件有10条消息"server starting"(服务器重启10次)。

      然后我将触发器设置为以下:

        

      {MyTemplate的:日志[/opt/mylog/logs/abc.log,server   起动] .nodata(300)} = 0

      现在,在Monitoring --> Trigger,我看到警报(触发器)10次,但是,Dashboard --> Last 20 issues它在300秒后消失了。

      我的问题是:

      1. 应该使用什么触发功能?如果同一消息在一段时间内在日志文件中出现10次,我想在zabbix中看到10个警报。

      2. 使用nodata(300),为什么警报会在300秒后消失?

      3. 如果我使用30分钟而不是300秒作为nodata()的参数,这样可以吗?

1 个答案:

答案 0 :(得分:3)

函数logeventid()通常用于Windows和VMware事件日志。在这种情况下,它可能不应该被使用,它可能会被触发,这可能表明Zabbix中存在错误。

无论如何,您可以检查"多个问题事件生成"触发器配置中的框和触发器将在每次条件为真时生成新的PROBLEM事件,而不管其先前的值。您可以尝试使用始终为true的函数,而不是logeventid(),而不是strlen()>0

如果您希望触发器在一段时间后(例如10分钟)进入“正常”状态,则可以添加nodata(10m)。然后你的触发器将如下所示:

{MyTemplate:log[/opt/mylog/logs/abc.log,server starting].strlen()}>0 and
{MyTemplate:log[/opt/mylog/logs/abc.log,server starting].nodata(10m)}=0