Создание плагина Nagios при помощи Ruby в Ubuntu 12.10
Ubuntu, VPS | Комментировать запись
Ruby – это популярный командный процессор, доступный в Linux по умолчанию.
В предыдущей статье было показано, как установить Nagios на сервер Ubuntu 12.10. данное руководство посвящено разработке плагинов Nagios при помощи Ruby, которые будут запускаться на клиенте через NRPE.
1: Установка NRPE на клиентский сервер
apt-get install -y ruby nagios-nrpe-server
useradd nrpe && update-rc.d nagios-nrpe-server defaults
2: Создание скрипта Ruby
Все плагины Nagios рекомендуется хранить в специально отведенном каталоге (в данном руководстве это /usr/lib/nagios/plugins/).
Для примера создайте скрипт, который будет проверять текущее использование диска, вызывая из оболочки команду df, и отправлять извещение в случае, если диск использован на 85% и больше:
#!/usr/bin/ruby
used_space=`df -h / | grep -v "Filesystem" | awk '{print $5}'`
case used_space.chomp <=> "85%"
when -1
puts "OK - #{used_space.chomp!} of disk space used."
exit 0
when 0
puts "WARNING - #{used_space.chomp!} of disk space used."
exit 1
when 1
puts "CRITICAL - #{used_space.chomp!} of disk space used."
exit 2
else
puts "UNKNOWN - #{used_space.chomp!} of disk space used."
exit 3
end
Сохраните скрипт в /usr/lib/nagios/plugins/usedspace.rb и сделайте его исполняемым:
chmod +x /usr/lib/nagios/plugins/usedspace.rb
В целом, весь плагин 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_ruby]=/usr/lib/nagios/plugins/usedspace.rb
где 111.222.333.444 – сервер мониторинга (замените данное значение собственным).
Не забудьте перезапустить сервис NRPE:
service nagios-nrpe-server restart
4: Добавление новой команды в Nagios
На сервере мониторинга Nagios определите команду в /etc/nagios/objects/commands.cfg.
define command{
command_name usedspace_ruby
command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c usedspace_ruby
}
Как видите, этот файл использует NRPE, чтобы создать TCP-подключение на порте 5666 и запускает команду usedspace_ruby, которая была определена в /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 Ruby
check_command usedspace_ruby
}
Перезапустите Nagios:
service nagios restart
Готово!
Tags: Linux, Nagios, NRPE, Ruby, Ubuntu, Ubuntu 12.10