web-dev-qa-db-ja.com

Nagios:別のポートでhttpサービスを監視する

80以外の複数のポートで実行されているhttp経由のサービスを監視したい。サービスは、ポート8083、8086、およびその他のいくつかのポートで実行されている。次のようにserver.cfgファイルを作成しました。

define Host {
        use                     linux-server
        Host_name               cfbase-prod
        alias                   cfbase-prod
        address                 x.x.x.x
        contacts                admin
        }

define service {
        use                             generic-service
        Host_name                       cfbase-prod
        service_description             HTTP
        check_command                   check_http
        contacts                        admin
        check_interval                  1
        }

しかし、私のnagiosコンソールでは機能しません。ポート80でhttpとして表示されますが、そうではありません。誰か助けてくれませんか。

2
yogeshagr

コマンドでポート番号を直接指定できますが、テストするポートごとに1つのコマンドを作成する必要があります。

または、例を使用して、ポート番号を格納するカスタム変数を作成できます。

define Host {
        use                     linux-server
        Host_name               cfbase-prod
        alias                   cfbase-prod
        address                 x.x.x.x
        contacts                admin
        }

define service {
        use                             generic-service
        Host_name                       cfbase-prod
        service_description             HTTP
        check_command                   check_http
        contacts                        admin
        check_interval                  1
        _port_number                    8083
        }

そして、あなたのコマンドでは、この変数を次のように継承できます:

define command{
    command_name check_http 
    command_line $USER1$/check_http -I $HOSTADDRESS$ -p $_SERVICEport_number$ $ARG1$ 
}

コマンドで変数を使用するには、サービスの場合は_serviceを、ホストの場合は_Hostを付加する必要があります。ソース:

https://assets.nagios.com/downloads/nagioscore/docs/nagioscore/3/en/customobjectvars.html

3
Sorcha

Check_httpと$ ARGを見ると、すべてがすでに配置されているはずなので、次のように使用しないでください。

check_http!-p 8888

プローブを要求します。少なくとも私の短いテストはnagios4でうまくいきました。

1
mek

ポートをcheck_http_portとして取る$ARG1$という名前の新しいコマンドを定義する必要があります。

define command {
    command_name check_http_port
    command_line $USER1$/check_http -I $HOSTADDRESS$ -p $ARG1$ <other options you use>
}

そして、それをサービス定義でcheck_http_port!8083として使用します。

その他のオプション/情報については、check_http --helpをご覧ください。

0
Keith