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