開発者ドキュメント

CentOS6でPHPを使用してNagiosプラグインを作成する方法

ステータス:非推奨

この記事では、サポートされなくなったバージョンのCentOSについて説明します。 現在CentOS6を実行しているサーバーを運用している場合は、サポートされているバージョンのCentOSにアップグレードまたは移行することを強くお勧めします。

理由: CentOS 6は2020年11月30日に保守終了(EOL)に達し、セキュリティパッチまたはアップデートを受信しなくなりました。 このため、このガイドは維持されなくなりました。

代わりに参照してください:
このガイドは参照として役立つ場合がありますが、他のCentOSリリースでは機能しない場合があります。 可能な場合は、使用しているCentOSのバージョン用に作成されたガイドを使用することを強くお勧めします。

序章

PHPは人気のあるプログラミング言語であり、スクリプトをすばやく作成して追加のライブラリをインストールできます。

以前、CentOS 6×64にNagios監視サーバーをインストールする方法について説明しました。 今回は、このアイデアを拡張し、PHPを使用して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 php nagios-nrpe
useradd nrpe && chkconfig nrpe on

ステップ2-PHPスクリプトを作成する

プラグインを他のNagiosプラグイン( / usr / lib64 / nagios / plugins / など)と同じディレクトリに保持することをお勧めします。

この例では、シェルから「df」を呼び出して現在のディスク使用量をチェックするスクリプトを作成し、85% usedを超えた場合にアラートをスローします。

#!/usr/bin/php
&lt?php
$used_space=chop(shell_exec("df -h / | grep -v Filesystem | awk '{print $5}'"));

switch ($used_space) {
        case "$used_space" < "85%":
        print "OK - $used_space of disk space used.";
        exit(0);

        case "$used_space" == "85%":
        print "WARNING - $used_space of disk space used.";
        exit(1);

        case $used_space > "85%":
        print "CRITICAL - $used_space of disk space used.";
        exit(2);

        default:
        print "UNKNOWN - $used_space of disk space used.";
        exit(3);
}
?>

このスクリプトを/usr/lib64/nagios/plugins/usedspace.phpに保存し、実行可能にします。

chmod +x /usr/lib64/nagios/plugins/usedspace.php

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_php]=/usr/lib64/nagios/plugins/usedspace.php

198.211.117.251は、以前の記事の監視サーバーです。 これらを独自の値に変更してください。

必ずNagiosNRPEサービスを再起動してください。

service nrpe restart

ステップ4-NagiosMonitoringServerのNagiosチェックに新しいコマンドを追加する

/etc/nagios/objects/commands.cfgで新しいコマンドを定義します

define command{
        command_name    usedspace_php
        command_line    $USER1$/check_nrpe -H $HOSTADDRESS$ -c usedspace_php
        }

ご覧のとおり、NRPEを使用してポート5666へのTCP接続を確立し、そのリモートホストの/etc/nagios/nrpe.cfgで定義したコマンド「usedspace_php」を実行します。

このチェックをクライアントVPSのNagios構成ファイルに追加します。

この例では、CentOSDropletというサーバーを監視し、/etc/nagios/servers/CentOSDroplet.cfgを編集します。

define service {
        use                             generic-service
        host_name                       CentOSDroplet
        service_description             Custom Disk Checker In PHP
        check_command                   usedspace_php
        }

Nagiosを再起動します:

service nagios restart

新しいチェックが機能していることを確認します。

そして、あなたはすべて完了です!

モバイルバージョンを終了