CentOS6でRubyを使用してNagiosプラグインを作成する方法
ステータス:非推奨
この記事では、サポートされなくなったバージョンのCentOSについて説明します。 現在CentOS6を実行しているサーバーを運用している場合は、サポートされているバージョンのCentOSにアップグレードまたは移行することを強くお勧めします。
理由:
代わりに参照してください:
このガイドは参照として役立つ場合がありますが、他のCentOSリリースでは機能しない場合があります。 可能な場合は、使用しているCentOSのバージョン用に作成されたガイドを使用することを強くお勧めします。
序章
Rubyは人気のあるプログラミング言語であり、スクリプトをすばやく作成して追加のライブラリ(Gems)をインストールできます。
以前、CentOS6にNagiosモニタリングサーバーをインストールする方法について説明しました。
今回は、このアイデアを拡張し、Rubyを使用してNagiosプラグインを作成します。 これらのプラグインはクライアントVPSで実行され、NRPEを介して実行されます。
ステップ1-クライアントVPSにRPMForgeリポジトリとNRPEをインストールします
rpm -ivh http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm yum -y install ruby nagios-nrpe useradd nrpe && chkconfig nrpe on
ステップ2-Rubyスクリプトを作成する
プラグインを他のNagiosプラグイン( / usr / lib64 / nagios / plugins / など)と同じディレクトリに保持することをお勧めします。
この例では、シェルから「df」を呼び出して現在のディスク使用量をチェックするスクリプトを作成し、85% usedを超えた場合にアラートをスローします。
#!/usr/bin/ruby used_space=`df -h / | grep -v "Filesystem" | awk '{print $5}'` case used_space.chomp <=> "85%" when -1 puts "OK - #{used_space.chomp!} of disk space used." exit 0 when 0 puts "WARNING - #{used_space.chomp!} of disk space used." exit 1 when 1 puts "CRITICAL - #{used_space.chomp!} of disk space used." exit 2 else puts "UNKNOWN - #{used_space.chomp!} of disk space used." exit 3 end
このスクリプトを/usr/lib64/nagios/plugins/usedspace.rbに保存し、実行可能にします。
chmod +x /usr/lib64/nagios/plugins/usedspace.rb
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/nrpe/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/nrpe.d/ command[usedspace_ruby]=/usr/lib64/nagios/plugins/usedspace.rb
198.211.117.251は、以前の記事の監視サーバーです。 これらを独自の値に変更してください。
必ずNagiosNRPEサービスを再起動してください。
service nrpe restart
ステップ4-NagiosMonitoringServerのNagiosチェックに新しいコマンドを追加する
/etc/nagios/objects/commands.cfgで新しいコマンドを定義します
define command{ command_name usedspace_ruby command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c usedspace_ruby }
ご覧のとおり、NRPEを使用してポート5666へのTCP接続を確立し、そのリモートホストの/etc/nagios/nrpe.cfgで定義したコマンド「usedspace_ruby」を実行します。
このチェックをクライアントVPSのNagios構成ファイルに追加します。
この例では、CentOSDropletというサーバーを監視し、/etc/nagios/servers/CentOSDroplet.cfgを編集します。
define service { use generic-service host_name CentOSDroplet service_description Custom Disk Checker In Ruby check_command usedspace_ruby }
Nagiosを再起動します:
service nagios restart
新しいチェックが機能していることを確認します。
そして、あなたはすべて完了です!