Создание плагина Nagios при помощи Bash в CentOS 6

Bash – это популярный командный процессор, доступный в Linux по умолчанию.

В предыдущей статье было показано, как установить Nagios на сервер CentOS 6. В этом руководстве рассказывается о том, как создать плагин Nagios при помощи Bash, который будет запускаться на клиентском сервере через NRPE.

1: Установка NRPE и репозитория RPMForge

На клиенте запустите следующие команды:

rpm -ivh http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm
yum -y install nagios-nrpe
useradd nrpe && chkconfig nrpe on

2: Создание скрипта Bash

Все плагины Nagios рекомендуется хранить в одной папке (например, в /usr/lib64/nagios/plugins/).

Для примера попробуйте создать скрипт, который проверяет текущее использование диска и выдает предупреждение, если оно превышает 85%:

#!/bin/bash
used_space=`df -h / | grep -v Filesystem | awk '{print $5}' | sed 's/%//g'`
case $used_space in
[1-84]*)
echo "OK - $used_space% of disk space used."
exit 0
;;
[85]*)
echo "WARNING - $used_space% of disk space used."
exit 1
;;
[86-100]*)
echo "CRITICAL - $used_space% of disk space used."
exit 2
;;
*)
echo "UNKNOWN - $used_space% of disk space used."
exit 3
;;
esac

Поместите скрипт в /usr/lib64/nagios/plugins/usedspace.sh и сделайте его исполняемым:

chmod +x /usr/lib64/nagios/plugins/usedspace.sh

Весь NRPE-плагин Nagios сводится к использованию кодов завершения для отправки предупреждений.

По сути, пользователь просто определяет логику скрипта и задает код завершения, чтобы получать извещения. В Nagios существует 4 кода завершения:

  • 0 – OK;
  • 1 – предупреждение;
  • 2 – критическая ошибка;
  • 3 – неизвестная ошибка.

3: Внесение скрипта в настройки NRPE

На клиентском хосте очистите оригинальный /etc/nagios/nrpe.cfg и внесите в него следующие строки:

log_facility=daemon
pid_file=/var/run/nrpe/nrpe.pid
server_port=5666
nrpe_user=nrpe
nrpe_group=nrpe
allowed_hosts=111.222.333.444
dont_blame_nrpe=1
debug=0
command_timeout=60
connection_timeout=300
include_dir=/etc/nrpe.d/
command[usedspace_bash]=/usr/lib64/nagios/plugins/usedspace.sh

Где 111.222.333.444 – мониторинговый сервер; вместо этого условного адреса укажите свой IP.

Перезапустите сервис NRPE:

service nrpe restart

4: Добавление команды в Nagios

На мониторинговом сервере определите новую команду в /etc/nagios/objects/commands.cfg:

define command{
command_name    usedspace_bash
command_line    $USER1$/check_nrpe -H $HOSTADDRESS$ -c usedspace_bash
}

Как видите, сервер использует NRPE для создания подключения TCP на порт 5666 и запускает команду usedspace_bash, которая была определена в /etc/nagios/nrpe.cfg на удаленном хосте.

Добавьте данную проверку в конфигурации Nagios на клиентском VPS.

В данном примере Nagios будет мониторить сервер по имени CentOSServer; отредактируйте /etc/nagios/servers/CentOSServer.cfg:

define service {
use                             generic-service
host_name                       CentOSServer
service_description             Custom Disk Checker In Bash
check_command                   usedspace_bash
}

Перезапустите Nagios:

service nagios restart

Готово!

Tags: , , , , , ,

Добавить комментарий