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