
我想在 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。