0

特定の URL をチェックする独自のコマンドを作成しました

define command{
    command_name    check_url
    command_line    /usr/lib/nagios/plugins/check_http -f follow -H '$HOSTNAME$' -I '$HOSTADDRESS$' -u '$ARG1$'
    }

コマンドラインからコマンドを実行すると、次のように機能します。

/usr/lib/nagios/plugins/check_http -f follow -H www.example.com -u http://www.example.com/server-status

HTTP OK: HTTP/1.1 200 OK - 4826 bytes in 0.011 second response time  |time=0.010625s;;;0.000000 size=4826B;;;0

しかし、Icinga を実行すると、

HTTP WARNING: HTTP/1.1 404 NOT FOUND - 314 bytes in 0.011 second response time 
4

3 に答える 3

3

私の推測では、-u オプションの check_http プラグインでは、URL 全体ではなく、サーバー名の後に追加された URL を指定する必要があります。元。

/usr/lib/nagios/plugins/check_http -f follow -H www.example.com -u /server-status

于 2012-12-27T06:11:37.773 に答える
1

Icinga がコマンドの実行方法を正確に抽象化しているこのような問題がある場合、Icinga が実行しているものを正確に見つけることが役立つと思います。私は次のようにこれを達成します:

check_http を一時的な場所に移動します

# mv /usr/lib/nagios/plugins/check_http /usr/lib/nagios/plugins/check_http_actual

実際の check_http スクリプトの代わりに Icinga が呼び出す bash スクリプトを作成します。

# vi /usr/lib/nagios/plugins/check_http

そのファイルで、この単純な bash スクリプトを作成します。これは、呼び出されたコマンド ライン引数を単純にエコーし、終了します。

#!/bin/bash
echo $@

次に、もちろん、その bash スクリプトを実行可能にします。

# chmod +x /usr/lib/nagios/plugins/check_http

Icinga で check_http コマンドを実行します。その時点で、Icinga Web インターフェイスに表示される戻りステータスは、Icinga が check_http を呼び出している方法を正確に示します。生のコマンドを見ると、Icinga が間違っていることは明らかです。Icinga の間違いを修正したら、元の check_http スクリプトを元の場所に戻すだけです。

# mv /usr/lib/nagios/plugins/{check_http_actual,check_http}
于 2016-03-07T22:55:49.723 に答える
1

手動テストは、コマンド定義と同等ではありません。

-H/-I の違いは微妙ですが、非常に重要です。

于 2012-09-26T17:48:21.090 に答える