Windows Server 2012上的SNMP磁盘队列长度(MRTG)

在Windows Server 2003上使用MRTG从SNMP读取磁盘队列长度很简单:

snmpwalk -v1 -cpublic 192.168.1.20 1.3.6.1.4.1.9600.1.1.1.1.7 iso.3.6.1.4.1.9600.1.1.1.1.7.2.67.58 = Gauge32: 26 iso.3.6.1.4.1.9600.1.1.1.1.7.2.69.58 = Gauge32: 221 iso.3.6.1.4.1.9600.1.1.1.1.7.2.71.58 = Gauge32: 0 iso.3.6.1.4.1.9600.1.1.1.1.7.6.95.84.111.116.97.108 = Gauge32: 247 

此MIB不适用于Windows Server 2008和2012

有没有其他简单的方法来读取磁盘队列?

现在我在Windows服务器2012上做了服务,最后我使用IIS为我的MRTG服务器访问太复杂的数据。

您可以使用NC_NetNSCLIent++代理读取Windows服务器上的磁盘队列。 这些代理旨在与Nagios一起使用; 但是他们也可以被MRTG查询。 您可以使用mrtg-pnsclient插件,用于与Routers2前端分发的MRTG。 这使用NSClient协议查询,并可以访问任何Windows PerfMon计数器,其中包括您所需的值。 该插件有一个可编译的C版本和一个本地Perl版本; 如果可以编译的话,C版本会更好。

要使用这个定义MRTG目标,请定义一下forms:

 Target[disk-queue-total]: `mrtg-pnsclient -H hostname -v COUNTER -l "\\PhysicalDisk(_Total)\\Current Disk Queue Length" -v COUNTER -l "\\PhysicalDisk(_Total)\\Current Disk Queue Length"` 

如果您想要每个磁盘的值,请将_totalreplace为相应的磁盘标识符。