在Zabbix被动检查中提交NULL值

最近我在Zabbix中configuration了一些被动检查。 现在,我看到一些检查在一段时间内失败了,但是在查看表时并不清楚。 看起来价值在上个星期是稳定的,但实际performance下降了,没有人认出来。

有没有办法向Zabbix发送NULL来表示提取数据失败? 并为这种情况下添加一个触发器? 我目前使用命令行工具zabbix_sender上传结果,但可以更改为一个替代。

相反,在收到最后一个值10分钟后,munin停止绘图,缺失值也不影响平均值的计算。

在这里你可以看到“缺less的数据”是如何显示的:

在图表中(我标记了“缺失的数据”): 在这里输入图像说明

在“最后数据”表格中(该行是灰色的,但“上次检查”的值几乎显示当前时间) 在这里输入图像说明

顺便说一句:同样的问题是在icmppingsec[]检查,只是在错误的情况下返回0。 对绘图不太有帮助,但至less可以避免误报。

您使用zabbix_sender的事实意味着这些项目是“Zabbix trapper”types。 使用trapper项目,上面描述的graphics行为是可以预期的。

像“Zabbix代理”和“Zabbix代理(活动)”types的常规项目configuration了更新间隔,所以前端知道数据有望来,例如,每30秒。 如果在4个更新周期内没有数据,绘图工具不会在这段时间内画线。 所以,就你的情况而言,如果这些物品是其他types的,那么标记的线条就不会被绘制出来。

但是,对于trapper项目,没有更新间隔,所以前端不知道数据预期会有多频繁。 它可能每一分钟,每一天,或不定期。 所以当前的解决scheme是连接图中的每两个点,并将第一个和最后一个值扩展到图的边界。

以后的行为可能会在https://support.zabbix.com/browse/ZBX-3356中得到改进。

事实上,这是可能的。 但是这可能会在未来的版本中改变,因为我认为这是Zabbix中的一个错误:

如果将项目types更改为“Zabbix agent(active)”(而不是“Zabbix trapper”),则可以设置“更新间隔(以秒为单位)”,即使使用zabbix_sender而不是代理。

原因是:Zabbix代理和zabbix_sender使用相同的协议(只有像“请求”字段中的“ 发件人数据 ”字段和“代理数据”string)的细微差别。 此外,Zabbix似乎不检查代理数据的来源,也不检查协议string,所以zabbix_sender甚至可以在任何主机上运行,​​以推动活跃的zabbix代理结果 – 一段时间后(我测量了大约2-3次更新间隔),如果没有数据,则graphics行按预期停止。

这个解决scheme唯一的缺点是:你不能再使用'允许主机'选项。