NagiosのマイナーっぽいSNMPプラグイン群を紹介してみる
NagiosでSNMPを利用した監視を行う場合、check_snmpコマンドであれこれ書いていくのも一つの方法ですが、MIBのオブジェクトIDとか覚えるのは不可能なので記述はコピペに頼ることになります。
CPU使用率だったら
check_snmp!public!.1.3.6.1.4.1.2021.11.9.0,.1.3.6.1.4.1.2021.11.10.0,.1.3.6.1.4.1.2021.11.11.0!'CPU usage (user system idle)'!'%,%,%'
とか。後から見て何やってるのか分かりづらい。それってあまり嬉しくないよなということで、用途別に書かれたプラグインを使ってます。
何年か前から使ってるんだけど、ブクマとかほとんど付いてなくて知名度が低いのか需要が無いのか分からないからエントリで紹介してみるメソッド。
上記ページにはいくつかのプラグインがあるんだけど、その中で僕が日常的に使っているのはcheck_snmp_storage, check_snmp_load, check_snmp_memの3つ。今はNRPEも必ず各サーバに入れるようにしてるので、そっちで取ってもいいんだけど、慣習的に使ってます。
なお、OSはCentOS5.4 x86_64でnagios本体はEPELからyumで入れて2.12を使用しています。
■check_snmp_load
PerlのNet::SNMPが必要なのでCPANから入れてもいいし、CentOSやFedoraならEPELからperl-Net-SNMPをyumで入れてもOK。
cd /usr/lib64/nagios/plugins
sudo wget http://nagios.manubulon.com/check_snmp_load.pl
sudo chmod +x check_snmp_load.pl
みたいに入れて、nagiosの設定ファイルに以下のように書く。
# 'check_snmp_load' command definition define command{ command_name check_snmp_load command_line $USER1$/check_snmp_load -H $HOSTADDRESS$ -C public -T netsl -w $ARG1$ -c $ARG2$ } define service{ use local-service hostgroup_name all service_description load check_command check_snmp_load!3,3,3!5,5,5 }
■check_snmp_storage
ディスク容量監視のプラグインです。EPELからnagiosを入れた場合は、nagios-plugins-perlも必要。
サイトで配布されている物をそのまま使うと、use libで指定しているディレクトリが違ったりするのでsedで書き換えます。
sudo yum install nagios-plugins-perl cd /usr/lib64/nagios/plugins sudo wget http://nagios.manubulon.com/check_snmp_storage.pl sudo sed -i "s|usr/local/nagios/libexec|usr/lib64/nagios/plugins|" check_snmp_storage.pl sudo chmod +x check_snmp_storage.pl
nagiosの設定はこんな感じ。監視対象をマウントポイントに対する正規表現で指定出来るのはいい感じ。
# 'check_snmp_storage' command definition define command{ command_name check_snmp_storage command_line $USER1$/check_snmp_storage.pl -H $HOSTADDRESS$ -C public -m $ARG1$ -w $ARG2$ -c $ARG3$ } define service{ use local-service hostgroup_name all service_description hdd check_command check_snmp_storage!/ -r!80!90 }
以下のような記述でSWAP監視も出来るけど、SWAPの監視は次のcheck_snmp_memでやってます。
define service{ use local-service hostgroup_name all service_description swap check_command check_snmp_storage!Swap!1!1 }
■check_snmp_mem
メモリ使用量とSWAPをまとめて監視できるプラグインで、これもnagios-plugins-perlとperl-Net-SNMPが必要。そしてuse libのディレクトリが古い仕様なので置換して入れる。
cd /usr/lib64/nagios/plugins sudo wget http://nagios.manubulon.com/check_snmp_mem.pl sudo sed -i "s|usr/local/nagios/libexec|usr/lib64/nagios/plugins|" check_snmp_mem.pl sudo chmod +x check_snmp_mem.pl
# 'check_snmp_mem' command definition define command{ command_name check_snmp_mem command_line $USER1$/check_snmp_mem.pl -H $HOSTADDRESS$ -C $ARG1$ -w $ARG2$ -c $ARG3$ } define service{ use local-service hostgroup_name all service_description memory_swap check_command check_snmp_mem!public!70,1!80,2 }