Я установил Nagios на рабочий стол Ubuntu (сервер Nagios) и хочу отслеживать экземпляр сервера Ubuntu (контролируемый клиент). Я могу подключиться через SSH между обоими машинами, и SSH не заблокирован. Стандартные службы nagios, такие как PING и check_users, работают, но 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 Server)
/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
}
Что мне здесь не хватает?
Основываясь на комментарии Дэна, я мог понять, что служба на самом деле пытается отправить параметры в этой конфигурации:
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$'
}
Таким образом, по умолчанию 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 до предыдущей версии, и он начал работать нормально.