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

Мониторинг ssh на нестандартном порте с Nagios

Я только что развернул Nagios на сервере Gentoo, и все в порядке, кроме ssh, который он помечает как «КРИТИЧЕСКИЙ», потому что он отказывает в соединениях. Но это потому, что он работает на порту, отличном от порта по умолчанию 22. Как мне изменить его, чтобы он контролировал правильный порт?

В конфигурации подключения ssh /etc/nagios-plugins/config/ssh.cfg есть псевдоним с именем check_ssh_port. если он не существует, вы можете определить его, как указано выше:


$ cat >> /etc/nagios-plugins/config/ssh.cfg
define command{
        command_name    check_ssh_port
        command_line    /usr/lib/nagios/plugins/check_ssh -p '$ARG1$' '$HOSTADDRESS$'
        }

в служебном файле /etc/nagios3/conf.d/services_nagios2.cfg определите службу ssh для мониторинга следующим образом:


define service {
        hostgroup_name                  ssh2-servers
        service_description             SSH2
        check_command                   check_ssh_port!12000!server
        use                             generic-service
        notification_interval           240 ; set > 0 if you want to be renotified
}
replace 12000 by you default ssh port and server by your target.

Поскольку ни одно из вышеперечисленных решений у меня не помогло, я опубликую этот небольшой вариант.

Это определение используется по умолчанию (например: localhost.cfg) с единственным добавлением опции -p и пробела между ними.

Я предполагаю, что это гибридная версия двух представленных решений.

Работает на Nagios Core 4 с nagios-plugins 2.1.1.

define service{
        use                             local-service         ; Name of service template to use
        host_name                       localhost
        service_description             SSH
        check_command                   check_ssh!-p 12345
        notifications_enabled           1
        }
host:~$ /usr/lib/nagios/plugins/check_ssh --help
check_ssh v1991 (nagios-plugins 1.4.12)
Copyright (c) 1999 Remi Paulmier <remi@sinfomic.fr>
Copyright (c) 2000-2007 Nagios Plugin Development Team
        <nagiosplug-devel@lists.sourceforge.net>

Try to connect to an SSH server at specified server and port


Usage:check_ssh [-46] [-t <timeout>] [-r <remote version>] [-p <port>] <host>

Отвечает ли это на ваш вопрос? Параметр -p позволяет указать порт, выполнить индивидуальную проверку в /etc/nagios/nrpe.cfg и поместить туда:

command[check_remote_ssh]= /usr/lib/nagios/plugins/check_ssh -p 1234 some.host

Вы также можете определить второй параметр, «server», в параметре host_name следующим образом:

    define host{
        use                     generic-host            ; Name of host template to use
        host_name               host
        alias                   host
        address                 92.193.170.124
}


# Define a service to check if ssh services are running
define service {
        use                     generic-service         ; Name of service template to use
        host_name               host
        service_description     SSH Port 4959
        check_command           check_ssh_port!4959
        notification_interval   0 ; set > 0 if you want to be renotified
}

Таким образом, если адрес хоста изменяется, вам нужно изменить этот параметр только один раз для всех служб, определенных для этого хоста.

define service{
        use                     generic-service
        host_name               localhost
        service_description     SSH
        check_command           check_ssh!-p 9898
        }

работает правильно, вы можете попробовать.