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

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

Примечание: Как установить Nagios на сервер Ubuntu 12.10 было показано в предыдущей статье.

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

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

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

apt-get install -y nagios-nrpe-server
useradd nrpe && update-rc.d nagios-nrpe-server defaults

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

Все плагины Nagios следует хранить в одной папке (например, в /usr/lib/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/lib/nagios/plugins/usedspace.sh и сделайте его исполняемым:

chmod +x /usr/lib/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/nagios/nrpe.pid
server_port=5666
nrpe_user=nrpe
nrpe_group=nrpe
allowed_hosts=111.222.111.222
dont_blame_nrpe=1
debug=0
command_timeout=60
connection_timeout=300
include_dir=/etc/nagios/nrpe.d/
command[usedspace_bash]=/usr/lib/nagios/plugins/usedspace.sh

где 111.222.111.222 – мониторинговый сервер; замените этот условный адрес своим IP.

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

service nagios-nrpe-server 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 будет мониторить сервер по имени UbuntuServer; отредактируйте /etc/nagios/servers/UbuntuServer.cfg:

define service {
use                             generic-service
host_name                       UbuntuServer
service_description             Custom Disk Checker In Bash
heck_command                   usedspace_bash
}

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

service nagios restart

Готово!

Tags: , , ,

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