snmpでlinuxのdisk パーティション監視
cacti/cloudforecastってどやって取ってるん?とふと気になって調べた。
cloudforecastのlib/CloudForecast/Data/Disk.pm 見てたらhrStorage* という単語あったので
snmpのoid見てたらこの辺だった。
各サーバのsnmpd.conf にdiskの設定追加しなくても良い方法 (cacti、cloudforecastが使ってるのはこのoid)
使ってるのはこれ以下のoidツリー
# snmptranslate .1.3.6.1.2.1.25.2 HOST-RESOURCES-MIB::hrStorage
まず HOST-RESOURCES-MIB::hrStorageIndex でパーティションに対応するindex調べる
# snmpwalk -v2c -c public localhost HOST-RESOURCES-MIB::hrStorageDescr (略) HOST-RESOURCES-MIB::hrStorageDescr.31 = STRING: /
=> /は31
そのindexのsizeと単位調べる
# snmpwalk -v2c -c public localhost HOST-RESOURCES-MIB::hrStorageAllocationUnits.31 HOST-RESOURCES-MIB::hrStorageAllocationUnits.31 = INTEGER: 4096 Bytes # snmpwalk -v2c -c public localhost HOST-RESOURCES-MIB::hrStorageSize.31 HOST-RESOURCES-MIB::hrStorageSize.31 = INTEGER: 7065055
=> パーティション容量は4096*7065055/1024/1024/1024.0 = 約27GB
# snmpwalk -v2c -c public localhost HOST-RESOURCES-MIB::hrStorageUsed.31 HOST-RESOURCES-MIB::hrStorageUsed.31 = INTEGER: 781729
=> 使用量は4096*781729/1024/1024/1024.0 = 約3GB
使用率は直接mibでは取れないのでhrStorageUsed / hrStorageSize で計算する