Вызов удаленных команд для 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.
Комментарии
Спасибо, то что искал коротко и ясно.
Оставьте свой комментарий