Создание плагина Nagios при помощи Perl в CentOS 6
Centos, VPS | Комментировать запись
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: CentOS, CentOS 6, Cloud Server, Linux, Nagios, NRPE, Perl, RPMforge, VPS