在 Zabbix 中多次触发生成

Arn*_*was 3 monitoring zabbix

我是 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
Run Code Online (Sandbox Code Playgroud)
  1. 用表达式创建了一个触发器:

{MyTemplate:log[/opt/mylog/logs/abc.log,服务器启动].logeventid(1)}=0

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

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

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

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

我的问题是:

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

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

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

asa*_*evs 5

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

无论如何,您可以在触发器配置中选中“多个问题事件生成”框,每次条件为真时,触发器都会生成一个新的问题事件,无论其先前的值如何。代替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
Run Code Online (Sandbox Code Playgroud)