我想在Solaris 10和Ubuntu 11.10上使用SNMP收集文件系统空间信息.问题是SNMP似乎没有与df中“Available”列对应的属性.
Filesystem 1K-blocks Used Available Use% Mounted on /dev/sdb1 36841040 13489312 21480268 39% /
以下是SNMP守护程序的相关属性(根据the Net-SNMP documentation):
HOST-RESOURCES-MIB::hrStorageDescr.31 = STRING: / HOST-RESOURCES-MIB::hrStorageSize.31 = INTEGER: 9210260 HOST-RESOURCES-MIB::hrStorageUsed.31 = INTEGER: 3372328 HOST-RESOURCES-MIB::hrStorageAllocationUnits.31 = INTEGER: 4096 Bytes
现在9210260 * 4 = 36841040,和3372328 * 4 = 13489312,它们匹配df输出中的列.但是,我看不到任何与“可用”列对应的属性.请注意,这不仅仅是减去两列的问题 – “可用”列似乎考虑了一些隐藏的开销,这些开销因文件系统而异.
有没有办法使用SNMP收集或计算“可用”列信息?
解决方法
我认为您需要在标准SNMP之上进行其他配置以获得可用空间.
NET-SNMP documentation提到以下内容:
@H_404_18@
There are two tables that can be used when monitoring disk space,
UCD-SNMP-MIB:dskTable and HOST-RESOURCES-MIB:hrStorageTable. There are
two noticeable differences bwtween these tables: UCD-SNMP-MIB:dskTable
requires a configuration directive in snmpd.conf,but it also gives a
direct measure of the percentage of free space
所以听起来你只需要使用UCD-SNMP-MIB而不是HOST-RESOURCES-MIB来获取dskTable而不是hrStorageTable.