Monitoring Zabbix中的多次触发器生成

Monitoring Zabbix中的多次触发器生成,monitoring,zabbix,Monitoring,Zabbix,我是扎比克斯的新手。我有一个使用zabbix监视不同日志消息发生情况的基本要求。例如,当出现日志消息“服务器正在启动”时,zabbix应显示该警报。其想法是,如果服务器在过去10分钟内(重新)启动10次,zabbix仪表板(或任何其他位置)应该显示10次 为此,我做了以下工作: 在模板MyTemplate下创建了一个项目: 已使用表达式创建触发器: {MyTemplate:log[/opt/mylog/logs/abc.log,服务器 正在启动].logeventid(1)}=0 使用logev

我是扎比克斯的新手。我有一个使用zabbix监视不同日志消息发生情况的基本要求。例如,当出现日志消息“服务器正在启动”时,zabbix应显示该警报。其想法是,如果服务器在过去10分钟内(重新)启动10次,zabbix仪表板(或任何其他位置)应该显示10次

为此,我做了以下工作:

  • 在模板MyTemplate下创建了一个项目:
  • 已使用表达式创建触发器:
  • {MyTemplate:log[/opt/mylog/logs/abc.log,服务器 正在启动].logeventid(1)}=0

    使用logeventid(1),我看到警报(触发器)只生成一次。它仅在
    仪表板-->最近20个问题中出现一次
    。如果转到
    Monitoring-->Trigger
    ,我只会看到一次警报,尽管日志文件中有10条消息
    “服务器启动”
    (服务器重新启动10次)

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

    {MyTemplate:log[/opt/mylog/logs/abc.log,服务器 正在启动].nodata(300)}=0

    现在,在
    Monitoring-->Trigger
    上,我看到警报(Trigger)10次,但在
    仪表板-->最后20个问题上,它在300秒后消失

    我的问题是:

  • 我应该使用什么样的触发函数?如果同一消息在一段时间内在日志文件中出现10次,我希望在zabbix中看到10个警报

  • 对于nodata(300),为什么警报在300秒后消失

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

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

    无论如何,您可以选中触发器配置中的“多个问题事件生成”框,触发器将在每次条件为真时生成新的问题事件,而不管其以前的值如何。您可以尝试使用始终为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
    

    谢谢这就是我要找的。你能解释一下logeventid()的缺点吗?另外,如果我在12小时内使用nodata会发生什么?我们的想法是,深夜触发的警报也应该在第二天早上(约12小时)显示为问题。是否有任何特性/性能影响?关于logeventid(),从技术角度来看,您的表达式实际上可能是正确的。检查logeventid(1)=0,即日志事件ID不包含“1”。由于没有与常规日志文件关联的事件ID,因此在技术上是好的。我第一次误读了你的表达式。关于nodata()的12小时,你可以毫无问题地使用nodata(12小时)。
    {MyTemplate:log[/opt/mylog/logs/abc.log,server starting].strlen()}>0 and
    {MyTemplate:log[/opt/mylog/logs/abc.log,server starting].nodata(10m)}=0