根据这个问题,我想监视我的Windows服务器使用Nagios(而不是Cacti)的networking利用率。
有没有人有任何指导使用NSClient或通过SNMP查询WMI计数器,以便可以由nagios使用pnp4nagiosgraphics收集rrd数据?
还是有没有人有这样做的插件?
谢谢
我正在使用提供perl脚本check_centreon_snmp_traffic的Centreon。
通过使用Nagios的check_bandwidth3插件并通过SNMP检查来解决这个问题。 我不知道为什么我没有想到通过SNMP首先检查它,因为这是我收集我的思科套件的统计数据!
标准的Nagios插件应该包含一个SNMP插件,可以很好地检查NIC的带宽使用情况。 当SNMP在混合环境中更具互操作性时,我从来没有打扰过使用WMI。 我尝试不使用NRPE或NSClient,因为如果您进行更改或更新,则意味着需要更多的工作来维护插件。
至于能够使用RRD工具来绘制来自Nagios的数据,您将不得不设置一个脚本来收集Nagios检查执行中的性能数据,并使用它来填充RRD数据文件。 Nagios没有什么能够做到这一点。 基于Nagios的OpenSource Monitor确实提供了一些function。 在我们的环境中,我们使用Nagios进行监控,并使用Cacti进行绘图…即使用正确的工具进行工作…
我正在使用Opsview ,它可以做到这一点。 我花了很多时间研究这个领域,恕我直言,我找不到像Opsview一样好的东西。
WMI甚至可以用于快速接口。 由于64位计数器在Windows上不可用并且32位计数器溢出 ,所以对于> = 1Gbps接口,SNMP将无法正常工作,性能监视器计数器也不会,因为它们只是速率(字节/秒),而不是绝对计数器[1 ])。 你提到你有nsclient可以很容易地查询WMI ,所以你可以这样做:
check_nrpe -H <host> -c CheckWMIValue -a 'Query=select BytesReceivedPersec, BytesSentPersec from Win32_PerfRawData_Tcpip_NetworkInterface where name = "<interface-name>"' Check:BytesReceived:=BytesReceivedPersec Check:BytesSent:=BytesSentPersec
尽pipe名称BytesReceivedPersec这是一个64位计数器(总字节),而不是一个速率(字节/秒)。
[1] – 像perfmon计数器那样已经在速率forms(bytes / sec)的任何东西都不能正常工作。 例如,如果你每5分钟进行一次检查,想象你检查一个空闲的接口,并得到0 BytesReceived /秒,然后3分钟你d / la大文件和最大的界面,然后回到闲置下一分钟。 当您轮询BytesReceived /秒时,您将再次得到0,尽pipe在大多数情况下您都拉了很多数据。 你需要一个发送/接收字节的绝对计数器,所以你可以从第二个减去第一个检查,除以时间间隔。