XenのdiskをnagiosでSNMPから監視する

- Xen Server の df
df -h
Filesystem Size Used Avail Use% Mounted on
/dev/cciss/c0d0p1 4.0G 2.9G 860M 78% /
none 380M 0 380M 0% /dev/shm
/dev/mapper/XSLocalEXT--17839832--589c--e778--a7dd--90d0c6a1a263-17839832--589c--e778--a6ed--90d0c6a1a263
60G 24G 34G 42% /var/run/sr-mount/17839832-589c-e778-a6ed-90d0c6a1a263

- mount pointが長過ぎる〜
そのままでやるとこうなる
./check_snmp_disk -H -C public -m d -w 90 -c 95
DISKS / : (2968 M/4032 M) 73% --- /var/run/sr-mount/d : (38063 M/110593 M) 34% --- /var/run/sr-mount/1 : (23701 M/60798 M) 38% ---

- nagiosのconfigをこうすれば監視は可能
define service{
use generic-service
host_name
name Linux_sr-mount
service_description Disk_/var/run/sr-mount/17839832-589c-e778-a6ed-90d0c6a1a263_check
check_command check_snmp_disk!/var/run/sr-mount/1!80%!90%!
}
ちょっと寂しい

- check_snmp_disk.cを変えちゃえ。
tar zxvf net-snmp-5.5.tar.gz (どっかから落としてきて)
cd net-snmp-5.5
make install
tar zxvf check_snmp_plugins.tar.gz
cd check_snmp_plugins/src

vi check_snmp_disk.c
20 があちこちにあるので、それを全部101に変更(全部変更してね)
unsigned char desc_uchar[20]; <<< こんなのとか…

vi check_snmp_disk.h
1箇所 20 があるので、101に変更
unsigned char descr[20]; <<< ここね

コンパイル
make check_snmp_disk

移動
mv /usr/local/nagios/libexec/check_snmp_disk{,.org}
mv check_snmp_disk /usr/local/nagios/libexec/

- 試してみる
./check_snmp_disk -H -C public -m d -w 90 -c 95
DISKS / : (2970 M/4032 M) 73% --- /var/run/sr-mount/17839832-589c-e778-a6ed-90d0c6a1a263 : (23701 M/60798 M) 38% ---
./check_snmp_disk -H -C public -m d -w 90 -c 95 -f /var/run/sr-mount/17839832-589c-e778-a6ed-90d0c6a1a263
DISKS /var/run/sr-mount/17839832-589c-e778-a6ed-90d0c6a1a263 : (23701 M/60798 M) 38% ---

- できた。

- ついてでにnagios のcfgも変更しちゃえ
define service{
use generic-service
host_name
name Linux_sr-mount
service_description Disk_/var/run/sr-mount/17839832-589c-e778-a6ed-90d0c6a1a263_check
check_command check_snmp_disk!/var/run/sr-mount/17839832-589c-e778-a6ed-90d0c6a1a263!80%!90%!
}

- おまじない
/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
でerror 0を確認して
- /etc/init.d/nagios reload