Dan Asked: 2009-08-26 02:02:21 +0800 CST2009-08-26 02:02:21 +0800 CST 2009-08-26 02:02:21 +0800 CST 使用 Nagios 监控网卡利用率 772 根据这个问题,我想使用 Nagios(不是 Cacti)监控我的 Windows 服务器的网络利用率。 是否有人对使用 NSClient 或通过 SNMP 查询 WMI 计数器有任何指导,以便 nagios 可以收集 rrd 数据以使用 pnp4nagios 进行绘图? 或者有人有这样的插件吗? 谢谢 windows bandwidth nagios 5 个回答 Voted lg. 2009-08-26T02:25:15+08:002009-08-26T02:25:15+08:00 我正在使用提供 perl 脚本 check_centreon_snmp_traffic 的 Centreon。 Best Answer Dan 2009-08-28T02:12:10+08:002009-08-28T02:12:10+08:00 通过使用 Nagios 的check_bandwidth3插件并通过 SNMP 检查它解决了这个问题。我不知道为什么我没有想到首先通过 SNMP 检查它,因为这就是我为我的 cisco 套件收集统计信息的方式! Jeremy Bouse 2009-08-26T02:19:29+08:002009-08-26T02:19:29+08:00 标准的 Nagios 插件应该包括一个 SNMP 插件,它可以很好地检查 NIC 的带宽使用情况。当 SNMP 在混合环境中更具互操作性时,我从不费心使用 WMI。我尽量不使用 NRPE 或 NSClient,因为如果您进行更改或更新它们,这意味着维护插件需要更多的工作。 至于能够使用 RRD 工具来绘制来自 Nagios 的数据,您将必须设置一个脚本,该脚本将从 Nagios 检查执行中收集性能数据并使用它来填充您的 RRD 数据文件。Nagios 没有任何东西可以做到这一点。基于 Nagios 的 Groundwork OpenSource Monitor 确实提供了一些功能来做到这一点。在我们的环境中,我们使用 Nagios 进行监控,使用 Cacti 进行绘图……即,使用正确的工具来完成工作…… hulbs9nw 2009-08-26T02:58:07+08:002009-08-26T02:58:07+08:00 我正在使用Opsview,它可以做到这一点。我花了很多时间研究这个领域,恕我直言,我找不到像 Opsview 一样好的东西。 Ryan Horrisberger 2013-03-21T07:43:56+08:002013-03-21T07:43:56+08:00 WMI 甚至适用于快速接口。SNMP 不适用于 >=1Gbps 接口,因为 64 位计数器在 Windows 上不可用并且32 位计数器溢出,性能监视器计数器也不会,因为它们只是速率(字节/秒)而不是绝对计数器 [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 尽管名称为 BytesReceivedPersec,但这是一个 64 位计数器(总字节数)而不是速率(字节/秒)。 [1] - 任何已经采用速率形式(字节/秒)的东西,比如 perfmon 计数器都不能正常工作。例如,如果您每 5 分钟进行一次检查,假设您检查了一个空闲接口并获得 0 BytesReceived/sec,然后在 3 分钟内您 d/la 巨大的文件并最大化接口,然后它在接下来的一分钟内回到空闲状态. 当您轮询 BytesReceived/sec 时,您将再次获得 0,即使在大多数情况下您都在提取大量数据。您需要一个发送/接收字节的绝对计数器,以便您可以从第二个检查中减去第一个检查并除以时间间隔。
我正在使用提供 perl 脚本 check_centreon_snmp_traffic 的 Centreon。
通过使用 Nagios 的check_bandwidth3插件并通过 SNMP 检查它解决了这个问题。我不知道为什么我没有想到首先通过 SNMP 检查它,因为这就是我为我的 cisco 套件收集统计信息的方式!
标准的 Nagios 插件应该包括一个 SNMP 插件,它可以很好地检查 NIC 的带宽使用情况。当 SNMP 在混合环境中更具互操作性时,我从不费心使用 WMI。我尽量不使用 NRPE 或 NSClient,因为如果您进行更改或更新它们,这意味着维护插件需要更多的工作。
至于能够使用 RRD 工具来绘制来自 Nagios 的数据,您将必须设置一个脚本,该脚本将从 Nagios 检查执行中收集性能数据并使用它来填充您的 RRD 数据文件。Nagios 没有任何东西可以做到这一点。基于 Nagios 的 Groundwork OpenSource Monitor 确实提供了一些功能来做到这一点。在我们的环境中,我们使用 Nagios 进行监控,使用 Cacti 进行绘图……即,使用正确的工具来完成工作……
我正在使用Opsview,它可以做到这一点。我花了很多时间研究这个领域,恕我直言,我找不到像 Opsview 一样好的东西。
WMI 甚至适用于快速接口。SNMP 不适用于 >=1Gbps 接口,因为 64 位计数器在 Windows 上不可用并且32 位计数器溢出,性能监视器计数器也不会,因为它们只是速率(字节/秒)而不是绝对计数器 [1 ])。你提到你有 nsclient 可以轻松查询 WMI,所以你可以这样做:
尽管名称为 BytesReceivedPersec,但这是一个 64 位计数器(总字节数)而不是速率(字节/秒)。
[1] - 任何已经采用速率形式(字节/秒)的东西,比如 perfmon 计数器都不能正常工作。例如,如果您每 5 分钟进行一次检查,假设您检查了一个空闲接口并获得 0 BytesReceived/sec,然后在 3 分钟内您 d/la 巨大的文件并最大化接口,然后它在接下来的一分钟内回到空闲状态. 当您轮询 BytesReceived/sec 时,您将再次获得 0,即使在大多数情况下您都在提取大量数据。您需要一个发送/接收字节的绝对计数器,以便您可以从第二个检查中减去第一个检查并除以时间间隔。