Nagios: изменение порта SSH-сервера при проверке

Автор: | 12/04/2014
 

nagios_logoПо умолчанию Nagios проверяет домен SSH на порту 22.

Но – его часто меняют, и требуется изменить настройки мониторинга для этой службы.

Проверка SSH выполняется командой check_ssh в файле с описанием хоста, в данном случае это /etc/nagios/objects/localhost.cfg:

define service{
        use                             local-service         ; Name of service template to use
        host_name                       localhost
        service_description             SSH
        check_command                   check_ssh
        notifications_enabled           1
        }

Которая вызывает команду check_ssh из скрипта /etc/nagios/objects/commands.cfg:

# 'check_ssh' command definition
define command{
        command_name    check_ssh
        command_line    $USER1$/check_ssh $ARG1$ $HOSTADDRESS$
        }

А она, в свою очередь, использует скрипт /usr/lib64/nagios/plugins/check_ssh.

Получить подсказку по нему можно так:

 # /usr/lib64/nagios/plugins/check_ssh --help
check_ssh v1.4.16 (nagios-plugins 1.4.16)
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
...
 -p, --port=INTEGER
 Port number (default: 22)
...

Теперь – изменим вызов команды check_ssh в файле /etc/nagios/objects/commands.cfg, добавив ему вызов с опцией -p:

define command{
        command_name    check_ssh
        command_line    $USER1$/check_ssh -p $ARG1$ $HOSTADDRESS$
        }

$ARG1$, как вы догадались – первый переданный при вызове аргумент.

Редактируем настройки хоста – и добавляем вызов check_ssh, передавая первым аргументом номер порта 2222:

define service{
        use                             local-service         ; Name of service template to use
        host_name                       localhost
        service_description             SSH
        check_command                   check_ssh!2222
        notifications_enabled           1
        }

check_ssh!2222 – аргументы передаются после знака “!“.

Готово:

# head -n 50 /var/vmail/domain.com/root@domain.com/cur/1417436587.M889791P27954.venti.domain.com,S=1040,W=1075:2,a
...
Subject: ** RECOVERY Service Alert: localhost/SSH is OK **
...

***** Nagios *****

Notification Type: RECOVERY

Service: SSH
Host: localhost
Address: 127.0.0.1
State: OK