Создание плагина Nagios при помощи Bash в CentOS 6
Centos, Cloud Server | Комментировать запись
Bash – это популярный командный процессор, доступный в Linux по умолчанию.
В предыдущей статье было показано, как установить Nagios на сервер CentOS 6. В этом руководстве рассказывается о том, как создать плагин Nagios при помощи Bash, который будет запускаться на клиентском сервере через 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 nagios-nrpe
useradd nrpe && chkconfig nrpe on
2: Создание скрипта Bash
Все плагины Nagios рекомендуется хранить в одной папке (например, в /usr/lib64/nagios/plugins/).
Для примера попробуйте создать скрипт, который проверяет текущее использование диска и выдает предупреждение, если оно превышает 85%:
#!/bin/bash
used_space=`df -h / | grep -v Filesystem | awk '{print $5}' | sed 's/%//g'`
case $used_space in
[1-84]*)
echo "OK - $used_space% of disk space used."
exit 0
;;
[85]*)
echo "WARNING - $used_space% of disk space used."
exit 1
;;
[86-100]*)
echo "CRITICAL - $used_space% of disk space used."
exit 2
;;
*)
echo "UNKNOWN - $used_space% of disk space used."
exit 3
;;
esac
Поместите скрипт в /usr/lib64/nagios/plugins/usedspace.sh и сделайте его исполняемым:
chmod +x /usr/lib64/nagios/plugins/usedspace.sh
Весь 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_bash]=/usr/lib64/nagios/plugins/usedspace.sh
Где 111.222.333.444 – мониторинговый сервер; вместо этого условного адреса укажите свой IP.
Перезапустите сервис NRPE:
service nrpe restart
4: Добавление команды в Nagios
На мониторинговом сервере определите новую команду в /etc/nagios/objects/commands.cfg:
define command{
command_name usedspace_bash
command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c usedspace_bash
}
Как видите, сервер использует NRPE для создания подключения TCP на порт 5666 и запускает команду usedspace_bash, которая была определена в /etc/nagios/nrpe.cfg на удаленном хосте.
Добавьте данную проверку в конфигурации Nagios на клиентском VPS.
В данном примере Nagios будет мониторить сервер по имени CentOSServer; отредактируйте /etc/nagios/servers/CentOSServer.cfg:
define service {
use generic-service
host_name CentOSServer
service_description Custom Disk Checker In Bash
check_command usedspace_bash
}
Перезапустите Nagios:
service nagios restart
Готово!
Tags: Bash, CentOS, CentOS 6, Cloud Server, Nagios, NRPE, RPMforge