web-dev-qa-db-ja.com

nagiosを使用してsshトンネルを監視するにはどうすればよいですか?

一連のリバースsshトンネルの仲介者として使用されるサーバーがあります。そのサーバーでnagiosを使用して、これらのsshトンネルがすべて稼働していることを監視したいと思います。

基本的に、私は次と同等のnagiosを実行したいと思います。

ssh -p 12344 localhost
ssh -p 12415 localhost
ssh -p 12544 localhost

私は次の定義を持っています:

define Host{
  use generic-Host
  Host_name paniqui
  address localhost
  _PORT 12345
}

define hostgroup {
    hostgroup_name  chits-servers
    alias           CHITS servers
    members         paniqui
}

define service {
  hostgroup_name                  chits-servers
  service_description             SSHTUNNEL
  check_command                   check_ssh!-p $_HOSTPORT$ $HOSTADDRESS$
  use                             generic-service
  notification_interval           0 ; set > 0 if you want to be renotified
}

しかし、Nagios Webインターフェイスでサービスを確認すると、次のように表示されます。

Status Information: UNKNOWN  (for 0d 2h 7m 50s)     
Usage:check_ssh [-46] [-t <timeout>] [-r <remote version>] [-p <port>] <Host>

助言がありますか?

4
Mike McKay

コマンドのパラメーターは、コマンド定義で構成する必要があります。何かのようなもの:

define command {
   command_name check_tunneled_ssh
   command_line /usr/lib/nagios/plugins/check_ssh -p $ARG1$ $HOSTADDRESS$
}

次に、

check_command check_tunneled_ssh!12344

あなたのサービスで。

4
DerfK

これが私のnagios/etc/objects /commands.cfgです。これは標準だと思います。

# 'check_ssh' command definition
define command{
        command_name    check_ssh
        command_line    $USER1$/check_ssh $ARG1$ $HOSTADDRESS$
        }

これは、checkコマンドで$ HOSTADDRESS $を指定することで、間違っていると思います。代わりに、サービス定義でこれを試してください。

  check_command                   check_ssh!-p 12345

「実際の」質問とは関係のない別のコメント...すべてのリモートサーバーに対して個別のホスト定義を作成するのではなく、ローカルホストの「ホスト」で新しいサービスを作成するだけです(これが提供しているものとして表示されます)サービス)各トンネル用。

2
Pricey