我正在使用带有 -n 开关的 nagios 插件 check_snmp_int。帮助显示:
-n, --name=NAME
Name in description OID (eth0, ppp0 ...).
This is treated as a regexp : -n eth will match eth0,eth1,...
Test it before, because there are known bugs (ex : trailling /)
因此它应该与正则表达式一起工作,但看起来并不像。我尝试匹配适配器“Marvell Yukon 88E8056 PCI-E 千兆以太网控制器”的精确描述,但它给了我所有与此字符串匹配的适配器或什么都没有。我还有其他适配器,名称如下:
Marvell Yukon 88E8056 PCI-E Gigabit Ethernet Controller - Deterministic Network Enhancer Miniport
Marvell Yukon 88E8056 PCI-E Gigabit Ethernet Controller #2
...
我尝试了 regex Controller$
,它与 grep 命令配合得很好,但没有与check_snmp_int
命令匹配任何内容。
我也尝试用 关闭正则表达式-r switch
,但没有发现任何东西。
有什么想法可以在不改变适配器描述的情况下解决这个问题?
答案1
我找到了一种也适用于性能数据生成的解决方案:
/usr/lib/nagios/plugins/check_snmp_netint.pl -H xxx.xxx.xxx.xxx -C public -n "Marvell Yukon 88E8056 PCI-E Gigabit Ethernet Controller$" -fZkz
您现在应该看到如下输出:
Marvell Yukon 88E8056 PCI-E Gigabit Ethernet Controller:UP (1.0KBps/7.0KBps) :(1 UP): OK | 'Marvell Yukon 88E8056 PCI-E Gigabit Ethernet Controller_in_octet'=275793073c 'Marvell Yukon 88E8056 PCI-E Gigabit Ethernet Controller_out_octet'=74278639c
当您的图表到现在还不起作用,并且您看到输出中还包含“|”后面的部分时,只需删除位于以下位置的服务的旧 rrd 和 xml 文件:
/var/lib/pnp4nagios/perfdata
如您所见,我使用 pnp4nagios 作为绘图工具。希望这对某些人有帮助。