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

Perl – популярный язык программирования, позволяющий быстро создавать скрипты и устанавливать дополнительные библиотеки.

В предыдущем руководстве было показано, как установить систему мониторинга серверов Nagios на сервер Ubuntu. Данное руководство поможет создать плагин Nagios при помощи Perl, который будет работать на клиентском сервере с помощью NRPE.

1: Установка NRPE

На клиенте запустите:

apt-get install -y perl nagios-nrpe-server

useradd nrpe && update-rc.d nagios-nrpe-server defaults

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

Для хранения всех плагинов Nagios рекомендуется использовать отдельный каталог (к примеру, это может быть /usr/lib/nagios/plugins/).

Создайте скрипт, который проверяет использование текущего диска, вызывая из оболочки команду df, а затем выдает предупреждение, если диск использован на 85% и больше.

#!/usr/bin/perl
use strict;
use warnings;
use feature qw(switch say);
my $used_space = `df -h / \|awk 'FNR == 2 {print \$5}'`;
given ($used_space) {
chomp($used_space);
when ($used_space lt '85%') { print "OK - $used_space of disk space used."; exit(0);      }
when ($used_space eq '85%') { print "WARNING - $used_space of disk space used."; exit(1);      }
when ($used_space gt '85%') { print "CRITICAL - $used_space of disk space used."; exit(2); }
default { print "UNKNOWN - $used_space of disk space used."; exit(3); }
}

Сохраните скрипт в /usr/lib/nagios/plugins/usedspace.pl и сделайте его исполняемым:

chmod +x /usr/lib/nagios/plugins/usedspace.pl

В целом 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.333.444
dont_blame_nrpe=1
debug=0
command_timeout=60
connection_timeout=300
include_dir=/etc/nagios/nrpe.d/
command[usedspace_perl]=/usr/lib/nagios/plugins/usedspace.perl

где 111.222.333.444 – сервер мониторинга; замените его своим настоящим IP.

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

service nagios-nrpe-server restart

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

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

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

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

Теперь добавьте эту команду в конфигурационный файл Nagios на клиентском сервере.

В данном случае Nagios будет отслеживать сервер по имени UbuntuServer; для этого отредактируйте /etc/nagios/servers/UbuntuServer.cfg

define service {
use                             generic-service
host_name                       UbuntuServer
service_description             Custom Disk Checker In Perl
check_command                   usedspace_perl
}

Затем перезапустите Nagios:

service nagios restart

Готово!

Tags: , , ,

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