OpenNMS 无法为某些 windows 个节点收集 cpuPercentBusy

OpenNMS fails to collect cpuPercentBusy for some windows nodes

我的环境有 5 Windows 个服务器 (2008)。我已将它们添加到我的 OpenNMS 实例中。这些服务器完全相同,唯一的区别是它们上面的应用程序组件 运行。

但是,这 5 个节点中只有 4 个 cpuPercentBusy.jrb 在 OpenNMS 上被收集。所有节点上的 SNMP 服务 运行。此外,正在收集其他 snmp 数据。只是没有为其中一个节点收集 cpuPercentBusy.jrb。是否有任何原因不为此节点收集此信息。日志没有显示任何具体原因。

如果您在 $OPENNMS_HOME/etc/datacollection/microsoft.xml 中查找用于收集 cpuPercentBusy 的 OID,您会发现“.1.3.6.1.2.1.25.3.3.1.2” oid 和实例“1”。对 OID .1.3.6.1.2.1.25.3.3.1.2.1 执行 snmpget 这通常类似于 -

snmpget -v 2c -c mycommunitystring mywindowshost .1.3.6.1.2.1.25.3.3.1.2.1

我敢打赌你会看到它失败了。我尝试时看到了以下内容 -

Error in packet
Reason: (noSuchName) There is no such variable name in this MIB.
Failed object: HOST-RESOURCES-MIB::hrProcessorLoad.1

然后我会尝试散步,您可能会看到还有其他情况。你可以这样散步 -

snmpwalk -v 2c -c mycommunitystring mywindowshost .1.3.6.1.2.1.25.3.3.1.2

在我的一个系统上,我收到的响应是 -

HOST-RESOURCES-MIB::hrProcessorLoad.2 = INTEGER: 63
HOST-RESOURCES-MIB::hrProcessorLoad.3 = INTEGER: 61

无论出于何种原因,某些 windows 系统上的 .1 实例不可用。 OpenNMS 对此无能为力。可以找到其他信息 here. 如果您走 .1.3.6.1.2.1.25.3.2.1.3,您会看到 table 的实例 ID 匹配。在我的例子中 .1 是 "Microsoft XPS Document Writer v4"。

您可以考虑安装 SNMP Informant 以获得更好的数据。

我在 $OPENNMS_Home/etc/datacollection/microsoft.xml

组 "windows-host" 中添加了额外的行
<datacollection-group xmlns="http://xmlns.opennms.org/xsd/config/datacollection" name="Microsoft">
  <group name="windows-host" ifType="ignore">
    <mibObj oid=".1.3.6.1.2.1.25.3.3.1.2" instance="0" alias="cpuPercentBusy" type="integer" />
    <mibObj oid=".1.3.6.1.2.1.25.3.3.1.2" instance="1" alias="cpuPercentBusy" type="integer" />
    <mibObj oid=".1.3.6.1.2.1.25.3.3.1.2" instance="2" alias="cpuPercentBusy" type="integer" />
    <mibObj oid=".1.3.6.1.2.1.25.3.3.1.2" instance="3" alias="cpuPercentBusy" type="integer" />
    <mibObj oid=".1.3.6.1.2.1.25.3.3.1.2" instance="4" alias="cpuPercentBusy" type="integer" />
    <mibObj oid=".1.3.6.1.2.1.25.3.3.1.2" instance="5" alias="cpuPercentBusy" type="integer" />
    <mibObj oid=".1.3.6.1.2.1.25.3.3.1.2" instance="6" alias="cpuPercentBusy" type="integer" />

...

一直到 64,正如我在我的环境中发现的那样,每个 VM 的实例可能会相差该数量。