使用 SNMP 可用的文件系统空间

使用 SNMP 可用的文件系统空间

我想在 Solaris 10 和 Ubuntu 11.10 上使用 SNMP 收集文件系统空间信息。问题是 SNMP 似乎没有与 中的“可用”列相对应的属性df

例如,这是df -k我的本地文件系统的输出:

Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/sdb1             36841040  13489312  21480268  39% /

以下是 SNMP 守护程序的相关属性(根据Net-SNMP 文档):

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 收集或计算“可用”列信息?

答案1

我认为您需要在标准 SNMP 基础上进行额外配置才能获得可用空间。NET-SNMP 文档提到以下内容:

监控磁盘空间时可以使用两个表,UCD-SNMP-MIB:dskTable 和 HOST-RESOURCES-MIB:hrStorageTable。这两个表之间有两个明显的区别:UCD-SNMP-MIB:dskTable 需要 snmpd.conf 中的配置指令,但它也可以直接测量可用空间的百分比

所以听起来您只需要使用 UCD-SNMP-MIB 而不是 HOST-RESOURCES-MIB 来获取 dskTable 而不是 hrStorageTable。

相关内容