Назад | Перейти на главную страницу

Nagios check_ssh возвращает информацию об использовании вместо статуса

Я установил 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 до предыдущей версии, и он начал работать нормально.