11 января 2013 г. Debian FreeBSD Linux Nagios Мониторинг NRPE

Вызов удаленных команд для Nagios с помощью NRPE

NRPE - Nagios Remote Plugin Executor. С помощью его можно запускать команды на удаленных хостах. NRPE состоит из двух частей:

  • На сервере мониторинга с Nagios (Monitoring Host) нужно установить nrpe-плагин.
  • На удаленные хосты (Remote Host) устанавливается агент "nrpe-server".

Схема

При соединении будем использовать SSL, так что собирать везде NRPE надо с поддержкой SSL.

Установка агента на FreeBSD

Как установить Nagios на Monitoring Host под FreeBSD я уже рассказывал.

Входим на Remote Host и установливаем агент:

cd /usr/ports/
portsnap fetch update
cd /usr/ports/net-mgmt/nrpe2
make config

Выбираем:

[*] SSL   Enable SSL support (disables plain-text server)

Продолжаем установку:

make install clean
echo 'nrpe2_enable="YES"' >> /etc/rc.conf

Входим на Monitoring Host и устанавливаем тот же порт, так как этот порт является агентом и плагином сразу. Только не надо помещать nrpe2_enable в /etc/rc.conf.

Установка агента на Debian

Как установить Nagios на Monitoring Host под Debian я уже рассказывал.

Входим на Remote Host и установливаем агент:

apt-get install nagios-nrpe-server

Входим на Monitoring Host и устанвливаем плагин:

apt-get install nagios-nrpe-plugin

Настройка агента на Remote Host

После установки, на Remote Host будет доступен конфигурационный файл:

  • на FreeBSD /usr/local/etc/nrpe.cfg
  • на Debian /etc/nagios/nrpe.cfg

Откройте его на редактирование, вам надо разрешить Monitoring Host подключаться к Remote Host:

server_address=203.0.113.42
allowed_hosts=127.0.0.1,203.0.113.41

Где IP-адрес:

  • "203.0.113.42" - внешний адрес текущего сервера, т.е. Remote Host;
  • "203.0.113.41" - адрес сервера Monitoring Host.

В этом же файле можно определять команды, которые можно будет вызывать с Monitoring Host:

$ grep -E "^command\[check_" nrpe.cfg
command[check_users]=/usr/local/libexec/nagios/check_users -w 5 -c 10
command[check_load]=/usr/local/libexec/nagios/check_load -w 15,10,5 -c 30,25,20
command[check_root]=/usr/local/libexec/nagios/check_disk -w 20% -c 10% -p /
command[check_var]=/usr/local/libexec/nagios/check_disk -w 20% -c 10% -p /var
command[check_tmp]=/usr/local/libexec/nagios/check_disk -w 20% -c 10% -p /tmp
command[check_usr]=/usr/local/libexec/nagios/check_disk -w 20% -c 10% -p /usr
command[check_zombie_procs]=/usr/local/libexec/nagios/check_procs -w 5 -c 10 -s Z
command[check_total_procs]=/usr/local/libexec/nagios/check_procs -w 150 -c 200

Также, вы можете определить две директивы, позволяющие присоединять конфигурационные файлы. Тем самым правильнее вынести команды в отдельные файлы:

# Присоединить определенный конфигурационный файл
include=/path/to/my_commands.cfg
# Или целый каталог
include_dir=/path/to/nrpe.d/

Теперь можно запустить агент:

# Во FreeBSD
/usr/local/etc/rc.d/nrpe2 start

# На Debian
/etc/init.d/nagios-nrpe-server start

Настройка плагина на Monitoring Host для FreeBSD

Войдите на Monitoring Host, откройте на редактирование файл /usr/local/etc/nagios/objects/commands.cfg и добавьте следующую команду:

# NRPE
define command{
    command_name    check_remote_command
    command_line    $USER1$/check_nrpe2 -H $HOSTADDRESS$ -c $ARG1$
    }

Теперь откройте файл с сервисами, например /usr/local/etc/nagios/objects/remotehosts.cfg (созданный нами ранее) и добавьте внешние сервисы:

define service{
    use                             remote-service
    hostgroups                      remote-servers
    service_description             Current Users
    check_command                   check_remote_command!check_users
    }
define service{
    use                             remote-service
    hostgroups                      remote-servers
    service_description             Zombie Processes
    check_command                   check_remote_command!check_zombie_procs
    }
define service{
    use                             remote-service
    hostgroups                      remote-servers
    service_description             Total Processes
    check_command                   check_remote_command!check_total_procs
    }

и т.д.

После чего перезапустите Nagios, чтобы изменения вступили в силу:

/usr/local/etc/rc.d/nagios restart

Настройка плагина на Monitoring Host для Debian

Войдите на Monitoring Host, перейдите в каталог /etc/nagios-plugins/config и откройте файл check_nrpe.cfg. Вы должны увидеть примерно следующее:

# this command runs a program $ARG1$ with arguments $ARG2$
define command {
    command_name    check_nrpe
    command_line    /usr/lib/nagios/plugins/check_nrpe -H $HOSTADDRESS$ -c $ARG1$ -a $ARG2$
}
# this command runs a program $ARG1$ with no arguments
define command {
    command_name    check_nrpe_1arg
    command_line    /usr/lib/nagios/plugins/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
}

Теперь откройте файл с сервисами, например /etc/nagios3/conf.d/remotehosts.cfg (созданный нами ранее тут и тут) и добавьте внешние сервисы:

define service{
    use                             remote-service
    hostgroups                      remote-servers
    service_description             Current Users
    check_command                   check_nrpe_1arg!check_users
    }
define service{
    use                             remote-service
    hostgroups                      remote-servers
    service_description             Zombie Processes
    check_command                   check_nrpe_1arg!check_zombie_procs
    }
define service{
    use                             remote-service
    hostgroups                      remote-servers
    service_description             Total Processes
    check_command                   check_nrpe_1arg!check_total_procs
    }

После чего перезапустите Nagios, чтобы изменения вступили в силу:

service nagios3 restart

Также советую прочитать мой пост про частые проблемы c NRPE.

Комментарии

Спасибо, то что искал коротко и ясно.

Оставьте свой комментарий

Markdown