web-dev-qa-db-ja.com

nagios-10/20/60秒後のHTTP CRITICALソケットタイムアウト

サーバーマシンにnagiosをインストールしたところ、HTTPサービスで重大なエラーが発生しました。

エラーは

HTTP CRITICAL - Socket timeout after 10 seconds 

検索 このエラーについて、より長いタイムアウトでcheck_httpを実行するように提案されました。そのため、「check_http」コマンドの横に、ファイル-t 20commands.cfgを追加しました。 nagiosを再起動しましたが、まだエラーが発生します(新しいタイムアウトの場合)。

次に、いくつかの more を検索しました。エラーはよくあるようですので、他の問題があるのではないかと考え始めます。

自分でcheck_httpを実行してみました:

root@srv$ /usr/libexec/nagios/check_http -H localhost -N -p 80 -t 1

HTTP OK: HTTP/1.1 200 OK - 846 bytes in 0.003 second response time |time=0.003080s;;;0.000000 size=846B;;;0

応答は問題ないようですが、httpについてはほとんど知りません。

手がかりはありますか?

編集:/etc/nagios/objects/commands.cfgから取得したcheck_httpのコマンド定義は

# 'check_http' command definition
define command{
        command_name    check_http
        command_line    $USER1$/check_http -I $HOSTADDRESS$ $ARG1$
        }

変数$ HOSTADDRESS $、さらに重要なのは$ ARG1 $の値を確認する方法がわかりません。

次に、サービスの定義は

define service{
    use                             local-service         ; Name of service template to use
    Host_name                       localhost
    service_description             HTTP
    check_command                   check_http
    notifications_enabled           1
    }

ディストリビューションはslackware 14.0 64ビットです。

3
nass

チェックコマンドが手動テストと一致しません。

Nagiosが手動でテストしているのと同じ方法でチェックを実行する場合、チェックコマンドの定義方法により、サービス定義は次のようになります。

define service{
    use                             local-service
    Host_name                       localhost
    service_description             HTTP
    check_command                   check_http!-N -p 80 -t 1
    notifications_enabled           1
}

...また、このホストのアドレスとして「localhost」も必要です。

(しかし、1秒のタイムアウトは一種の短いものです。)

1
Keith

$ HOSTADDRESS $ $ HOSTNAME $などに要求する変数は、$ SERVICEXXXX $と同じように、ホスト定義のフィールドADDRESSを要求するようなものです。 $ ARG1 $は!すでに述べたように、コマンド定義で。

この特定のケースでは:

check_command                   check_http!-N -p 80 -t 1

$ ARG1 $ = -N -p 80 -t 1 //-p 80はhttpのデフォルトであるため、不要です。

これがNagiosマクロの理解に役立つことを願っています。

0
user205218

Check_httpプラグインは、外部IPからWebページをロードしようとするのと同じことを行います。ブラウザーでWebページをロードできること、およびプラグインが構成ファイル(FQDNまたはIP番号)で指定したものとまったく同じホスト定義を使用してコマンドラインで機能することを確認してください。

ローカルホストを実際にチェックしている場合は、127.0.0.1で試してみてください。また、wgetなどを使用して、ローカルホストがそれ自体からWebページをロードすることを本当に許可されていることを確認してください(wget http://127.0.0.1)。これは他のサイトでも機能します(wget http://www.yourdomain.com)。

0