使用 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。

相關內容