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

PHP – это популярный язык программирования для быстрой разработки скриптов и установки библиотек.

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

1: Установка NRPE на клиентский сервер

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

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

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

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

#!/usr/bin/php
<?php
$used_space=chop(shell_exec("df -h / | grep -v Filesystem | awk '{print $5}'"));
switch ($used_space) {
case "$used_space" < "85%":
print "OK - $used_space of disk space used.";
exit(0);
case "$used_space" == "85%":
print "WARNING - $used_space of disk space used.";
exit(1);
case $used_space > "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.php и сделайте его исполняемым:

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

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

В Nagios есть четыре кода завершения:

  • 0 – ОК
  • 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_php]=/usr/lib/nagios/plugins/usedspace.php

где 111.222.333.444 – сервер мониторинга (замените данное значение собственным).

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

service nagios-nrpe-server restart

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

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

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

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

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

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

define service {
use                             generic-service
host_name                       UbuntuServer
service_description             Custom Disk Checker In PHP
check_command                   usedspace_php
}

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

service nagios restart

Готово!

Tags: , , ,

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