web-dev-qa-db-ja.com

Nagios check_sshは、ステータスの代わりに使用状況情報を返します

NagiosをUbuntuデスクトップ(Nagiosサーバー)にインストールしましたが、Ubuntuサーバーインスタンス(監視対象クライアント)を監視したいと思います。両方のマシン間でSSH経由で接続でき、SSHはブロックされません。 PINGやcheck_usersなどのnagios標準サービスは機能しますが、check_sshは最初からUNKNOWN状態のままです。状態情報は、パラメーターが間違っていることを示す「使用法:」を提供します。

Nagiosサーバー(Ubuntuデスクトップ)で手動でチェックを実行できます

/usr/local/nagios/libexec/check_ssh -H 192.168.0.2

SSH OK - OpenSSH_6.6.1p1 Ubuntu-2ubuntu2.3 (protocol 2.0) | time=0,012856s;;;0,000000;10,000000

また、ホスト(Ubuntuサーバー)でも

/usr/lib/nagios/plugins/check_ssh 192.168.0.2

SSH OK - OpenSSH_6.6.1p1 Ubuntu-2ubuntu2.3 (protocol 2.0) | time=0.011613s;;;0.000000;10.000000

これはホスト構成です:

define Host {
        use                          linux-server
        Host_name                    backup
        alias                        Backup Server
        address                      192.168.0.2 
        register                     1
}

ホストの構成は標準です。

define service {
      Host_name                       backup
      service_description             Check SSH
      check_command                   check_ssh
      max_check_attempts              2
      check_interval                  2
      retry_interval                  2
      check_period                    24x7
      check_freshness                 1
      contact_groups                  admins
      notification_interval           2
      notification_period             24x7
      notifications_enabled           1
      register                        1
}

また、ホストのIPを手動で追加してみました。

define service {
      Host_name                       backup
      service_description             Check SSH
      check_command                   check_ssh!192.168.0.2
      max_check_attempts              2
      check_interval                  2
      retry_interval                  2
      check_period                    24x7
      check_freshness                 1
      contact_groups                  admins
      notification_interval           2
      notification_period             24x7
      notifications_enabled           1
      register                        1
}

ここで何が欠けていますか?

ヒントに基づいて私も試したこと

Danのコメントに基づいて、サービスが実際にこの構成でパラメーターを送信しようとしていることがわかりました。

ssh_check $ARG1$ '$HOSTADDRESS$' 

バックアップシステムで使用可能なssh_check構成を確認すると、これらの可能性が示されますが、それでも標準のssh_checkコマンドは機能しませんでした。

cat /etc/nagios-plugins/config/ssh.cfg 
# 'check_ssh' command definition
define command{
    command_name    check_ssh
    command_line    /usr/lib/nagios/plugins/check_ssh '$HOSTADDRESS$'
    }

# 'check_ssh_port' command definition
define command{
    command_name    check_ssh_port
    command_line    /usr/lib/nagios/plugins/check_ssh -p '$ARG1$' '$HOSTADDRESS$'
    }

####
# use these checks, if you want to test IPv4 connectivity on IPv6 enabled systems
####

# 'check_ssh_4' command definition
define command{
        command_name    check_ssh_4
        command_line    /usr/lib/nagios/plugins/check_ssh -4 '$HOSTADDRESS$'
        }

# 'check_ssh_port_4' command definition
define command{
    command_name    check_ssh_port_4
    command_line    /usr/lib/nagios/plugins/check_ssh -4 -p '$ARG1$' '$HOSTADDRESS$'
    }

さらに、バックアップサーバーのIPアドレスを両方のパラメーターとして送信しようとしましたが、成功しませんでした。

define service {
      Host_name                       backup
      service_description             Check SSH
      check_command                   check_ssh!192.168.0.2!192.168.0.2
      max_check_attempts              2
      check_interval                  2
      retry_interval                  2
      check_period                    24x7
      check_freshness                 1
      contact_groups                  admins
      notification_interval           2
      notification_period             24x7
      notifications_enabled           1
      register                        1
}

解決

クライアントのnagiosプラグイン構成(/etc/nagios-plugins/config/ssh.cfg)で定義されたサービスコマンドに対処する方法がわかりませんでした。たとえばssh_check_4を設定すると、nagiosサーバーが未定義のサービスについて文句を言いました。新しいサービスコマンドを構成することになりました。

define service {
      Host_name                       backup
      service_description             Check SSH
      check_command                   check_ssh_fix
      max_check_attempts              2
      check_interval                  2
      retry_interval                  2
      check_period                    24x7
      check_freshness                 1
      contact_groups                  admins
      notification_interval           2
      notification_period             24x7
      notifications_enabled           1
      register                        1
}

define command{
  command_name  check_ssh_fix
  command_line  /usr/lib/nagios/plugins/check_ssh '$HOSTADDRESS$' 
}

ありがとう!

2
Stefan

「check_ssh」のコマンドが定義されている必要があります

そのように、例えばDebian/Ubuntuシステムの場合/etc/nagios-plugins/config/ssh.cfg

define command{
  command_name  check_ssh
  command_line  /usr/lib/nagios/plugins/check_ssh '$HOSTADDRESS$'
}

したがって、デフォルトでは、check_sshを使用する以外に何もせずに、ホストアドレスがコマンドに渡されます。

私はあなたのコマンドがこのように見えると思います:

define command{
  command_name  check_ssh
  command_line  /usr/lib/nagios/plugins/check_ssh '$HOSTADDRESS$' $ARG1$
}

そのため、次のコマンドが実行されます。

/usr/lib/nagios/plugins/check_ssh '1.2.3.4' 1.2.3.4
4
lazyfrosch

Nagios-clientのバージョンがモニタリングシステムと互換性があることを確認してください。ローカルで正常に実行されていたときにも同様の問題が発生しました。しかし、それは私の監視(セントロン)を更新していませんでした。 nagios-clientを以前のバージョンにダウングレードすると、問題なく動作し始めました。

0
Jorococo