まいんだーのはてなブログ

はてブなのはてブロなのどっちなの

UCD-DISKIO-MIB::diskIOTable とかを取りたいのに UCD-SNMP-MIB::ucdExperimental と出てしまい取れなくて生きるのがつらいとき

cloudforecast とかを使ってdiskIOを収集するにあたって diskIONWritten を指定して取るケースは多々あると思います。

しかしながら

$ snmpwalk -v 2c -c public installer1 1.3.6.1.4.1.2021.13.15.1.1.4
UCD-SNMP-MIB::ucdExperimental.15.1.1.4.1 = Counter32: 0
〜 中略 〜
UCD-SNMP-MIB::ucdExperimental.15.1.1.4.25 = Counter32: 4062435328
UCD-SNMP-MIB::ucdExperimental.15.1.1.4.26 = Counter32: 51200
UCD-SNMP-MIB::ucdExperimental.15.1.1.4.27 = Counter32: 4062384128
UCD-SNMP-MIB::ucdExperimental.15.1.1.4.28 = Counter32: 4062384128
UCD-SNMP-MIB::ucdExperimental.15.1.1.4.29 = Counter32: 0

とか出てしまって値が取れない事があるときは下記のように net-snmp をインストールすれば出るはず。

$ ./configure --with-perl-modules --with-mib-modules="ucd-snmp/diskio"
$ make
# make install

これで CloudForecast::Data::Diskio に "schema and result values is no match" とか怒られることもなくなり運用が捗ります。