【问题标题】:Multiple times trigger generation in ZabbixZabbix 中多次触发生成
【发布时间】:2015-06-22 23:56:59
【问题描述】:

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

为此我做了以下事情:

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

{MyTemplate:log[/opt/mylog/logs/abc.log,server 开始].logeventid(1)}=0

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

然后我将触发器设置为:

{MyTemplate:log[/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() 的参数可以吗?

【问题讨论】:

    标签: monitoring zabbix


    【解决方案1】:

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

    无论如何,您可以在触发器配置中选中“多个 PROBLEM 事件生成”框,每次条件为真时触发器都会生成一个新的 PROBLEM 事件,而不管其先前的值如何。除了logeventid(),您可以尝试使用始终为真的函数,例如strlen()>0

    如果您希望触发器在一段时间后进入 OK 状态,例如 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(12h)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多