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

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

В предыдущей статье этой серии было рассказано, как установить систему мониторинга серверов Nagios на сервер CentOS 6. В этом руководстве речь пойдет о создании плагинов Nagios при помощи Perl, которые будут работать на клиентском сервере с помощью 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 perl nagios-nrpe
useradd nrpe && chkconfig nrpe on

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

Рекомендуется создать отдельный каталог для хранения всех плагинов Nagios (к примеру, это может быть /usr/lib64/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/lib64/nagios/plugins/usedspace.pl и сделайте его исполняемым.

chmod +x /usr/lib64/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/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_perl]=/usr/lib64/nagios/plugins/usedspace.pl

Где 111.222.333.444 – мониторинговый сервер; не забудьте заменить его своим настоящим IP.

Не забудьте перезапустить сервис NRPE:

service nrpe 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 будет отслеживать сервер по имени CentOSServer; для этого отредактируйте /etc/nagios/servers/CentOSServer.cfg

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

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

service nagios restart

Готово!

Tags: , , , , , , , ,

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