複数のWebサイトで共有サーバーを運用しているため、ホストだけでなく実際のURLをNagiosで監視しようとしていますが、基本的なHTTPサービスを監視するだけでは不十分だと思います(この質問の下部に、私が想像していることの簡単な説明があります)。
(補足:CentOSシステムのchroot内にNagiosをインストールして実行していることに注意してください。ソースからnagiosを構築し、yumを使用して必要なすべての依存関係などをこのルートにインストールしました...)
最初にcheck_urlを見つけましたが、それを/ usr / lib / nagios / libexecにインストールした後、「255のリターンコードが範囲外です」というエラーが発生し続けました。それが私がこの質問を書き始めることに決めたときです(しかし待ってください!私が最初に試すことに決めた別のプラグインがあります!)
check_urlで発生しているのとほぼ同じ問題が発生したこの質問を確認した後、a)このチェックでNRPEを使用していないため、この件について新しい質問を開くことにしました。私がリンクした以前の質問ですが、どれも機能しませんでした。例えば...
./check_url some-domain.com | echo $0
「0」を返します(チェックが成功したことを示します)
次に、Nagios Suppor tのデバッグ手順に従って、debug_check_urlという一時ファイルを作成し、その中に次のファイルを配置しました(コマンド定義によって呼び出されます)。
#!/bin/sh
echo `date` >> /tmp/debug_check_url_plugin
echo $* /tmp/debug_check_url_plugin
/usr/local/nagios/libexec/check_url $*
「デバッグモード」ではないと仮定すると、check_urlを実行するためのコマンド定義は次のようになります(command.cfg内)。
'check_url' command definition
define command{
command_name check_url
command_line $USER1$/check_url $url$
}
(ちなみに、この質問の一番下にあるサービス構成ファイルで使用していたものを表示することもできます)
しかし、この質問を公開する前に、私は解決策を見つけるためにもう1つのショットを与えることにしました。check_url_statusプラグインを見つけて、それを試してみることにしました。それを行うために、これが私がしたことです:
- mkdir / usr / lib / nagios / libexec / check_url_status /
- check_url_statusとutils.pmの両方をダウンロードしました
- check_url_statusプラグインページのユーザーコメント/レビューに従って、「lib」を/ usr / lib / nagios /libexec/の適切なディレクトリに変更しました。
次を実行します。
./check_user_status-Usome-domain.com。上記のコマンドを実行すると、次のエラーが発生し続けました。
bash-4.1#./check_url_status -U mydomain.com @INCでutils.pmが見つかりません(@INCに含まれるもの:/ usr / lib / nagios / libexec / / usr / local / lib / perl5 / usr / local / share / perl5 / usr / lib / perl5 / vendor_perl / usr / share / perl5 / vendor_perl / usr / lib / perl5 / usr / share / perl5)at./check_url_status34行目。BEGINfailed--コンパイルは./check_url_status行34で中止されました。 。
したがって、この時点で、私はあきらめて、いくつか質問があります。
- これら2つのプラグインのどちらをお勧めしますか?check_urlまたはcheck_url_status? (check_url_statusの説明を読んだ後、これがより良い選択かもしれないと思います。あなたの考えは?)
- さて、あなたが推奨したプラグインの問題をどのように修正しますか?
この質問の冒頭で、私が想像していることの簡単な説明を含めると述べました。私はservices.cfgというファイルを持っています。このファイルには、すべてのサービス定義があります(想像してみてください)。
以下は、check_urlを使用するために作成したサービス定義ファイルのスニペットです(当時、すべてが機能していると思っていたため)。監視するURLごとにサービスを構築します。
###
# Monitoring Individual URLs...
#
###
define service{
host_name {my-shared-web-server}
service_description URL: somedomain.com
check_command check_url!somedomain.com
max_check_attempts 5
check_interval 3
retry_interval 1
check_period 24x7
notification_interval 30
notification_period workhours
}