Ubuntu12.10でPerlを使用してNagiosプラグインを作成する方法
序章
Perlは人気のあるプログラミング言語であり、スクリプトをすばやく作成して追加のライブラリをインストールできます。
以前、Ubuntu 12.10x64にNagios監視サーバーをインストールする方法について説明しました。 今回は、このアイデアを拡張し、Perlを使用してNagiosプラグインを作成します。 これらのプラグインはクライアントVPSで実行され、NRPEを介して実行されます。
ステップ1-クライアントVPSにNRPEをインストールします
apt-get install -y perl nagios-nrpe-server useradd nrpe && update-rc.d nagios-nrpe-server defaults
ステップ2-Perlスクリプトを作成する
プラグインを他のNagiosプラグイン( / usr / lib / nagios / plugins / など)と同じディレクトリに保持することをお勧めします。
この例では、シェルから「df」を呼び出して現在のディスク使用量をチェックするスクリプトを作成し、85% usedを超えた場合にアラートをスローします。
#!/usr/bin/perl
use strict;
use warnings;
use feature qw(switch say);
my $used_space = `df -h / \|awk 'FNR == 2 {print \$5}'`;
given ($used_space) {
chomp($used_space);
when ($used_space lt '85%') { print "OK - $used_space of disk space used."; exit(0); }
when ($used_space eq '85%') { print "WARNING - $used_space of disk space used."; exit(1); }
when ($used_space gt '85%') { print "CRITICAL - $used_space of disk space used."; exit(2); }
default { print "UNKNOWN - $used_space of disk space used."; exit(3); }
}
このスクリプトを/usr/lib/nagios/plugins/usedspace.plに保存し、実行可能にします。
chmod +x /usr/lib/nagios/plugins/usedspace.pl
Nagios NRPEプラグイン全体は、結局、終了コードを使用してアラートをトリガーすることになります。
スクリプトにロジックのレベルを導入し、アラートをトリガーする場合(OK、WARNING、CRITICAL、またはUNKNOWN)、終了コードを指定します。
次のNagios終了コードを参照してください。
Nagiosの終了コード
| 終了コード | 状態 |
|---|---|
| 0 | わかった |
| 1 | 警告 |
| 2 | 致命的 |
| 3 | わからない |
ステップ3-クライアントホストのNRPE構成にスクリプトを追加する
元の/etc/nagios/nrpe.cfgを削除し、それに次の行を追加します。
log_facility=daemon pid_file=/var/run/nagios/nrpe.pid server_port=5666 nrpe_user=nrpe nrpe_group=nrpe allowed_hosts=198.211.117.251 dont_blame_nrpe=1 debug=0 command_timeout=60 connection_timeout=300 include_dir=/etc/nagios/nrpe.d/ command[usedspace_perl]=/usr/lib/nagios/plugins/usedspace.perl
198.211.117.251は、以前の記事の監視サーバーです。 これらを独自の値に変更してください。
必ずNagiosNRPEサービスを再起動してください。
service nagios-nrpe-server restart
ステップ4-NagiosMonitoringServerのNagiosチェックに新しいコマンドを追加する
/etc/nagios/objects/commands.cfgで新しいコマンドを定義します
define command{
command_name usedspace_perl
command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c usedspace_perl
}
ご覧のとおり、NRPEを使用してポート5666へのTCP接続を確立し、そのリモートホストの/etc/nagios/nrpe.cfgで定義したコマンド'usedspace_perl'を実行します。
このチェックをクライアントVPSのNagios構成ファイルに追加します。
この例では、UbuntuDropletというサーバーを監視し、/etc/nagios/servers/UbuntuDroplet.cfgを編集します。
define service {
use generic-service
host_name UbuntuDroplet
service_description Custom Disk Checker In Perl
check_command usedspace_perl
}
Nagiosを再起動します:
service nagios restart
新しいチェックが機能していることを確認します。
そして、あなたはすべて完了です!