Мониторинг MySQL в Nagios

Мониторинг базы данных MySQL в Nagios можно реализовать написав свой скрипт и добавив его в nrpe. Скрипт может быть на любом языке, в простейшем случае — на bash.

Мониторинг базы данных MySQL в Nagios

Nagios — гибкая система, которая позволяет использовать очень большое количество готовых скриптов и задавать всевозможные проверки. Расширять функционал можно за счет собственных скриптов.

Они могут проверять любые условия и любые сервисы. Для пример рассмотрим сервер баз данных MySQL.

Предположим, что с сервера работает один сайт и всегда нужно контролировать возможность подключения к базе.

#!/bin/bash

mysql -u USER -pPASSWORD -e "select * from DATABASE.TABLE limit 1;" 1> /dev/null 2>&1 ;

if (($? == 0)); then
echo "MySQL OK - select * from DATABASE.TABLE succecefull"
exit 0
elif (($? > 1 )); then
echo "Can't get 1, value is reserved "
exit 1
elif (($? == 1 )); then
echo "MySQL CRITICAL - can not select * from DATABASE.TABLE"
exit 2
else
echo "UNKNOWN"
exit 3
fi

Файл после указания в нем имени пользователя, его пароля, базы и таблицы можно сохранить по произвольному пути на сервере /opt/mysql.sh

Затем установить бит исполнения

chmod +x /opt/mysql.sh

Скрипт с реквизитами пользователя выбирает одну строку из указанной таблицы и анализирует ответ. Если содержимое получено — возвращается ноль, если нет — возвращается единица и формируется CRITICAL.

Следует выбирать одну из основных таблиц, удаление которое не планируется.

Скрипт можно проверить просто выполняя его из консоли:

/opt/mysql.sh

MySQL OK — select * from DATABASE.TABLE succecefull

Он добавляется в качестве одной из проверок в NRPE

nrpe является отдельным пакетом, если его нет — устанавливается из репозитория

apt-get update && apt-get install nagios-nrpe-server

Проверки добавляются в основной конфигурационный файл /etc/nagios/nrpe.cfg или в один из файлов, подключаемых в нем

mcedit /etc/nagios/nrpe.cfg

command1=/opt/mysql.sh

Чтобы изменения вступили в силу службу нужно перезапустить

service nagios-nrpe-server restart

Шаблон для собственных скриптов, которые добавляются в Nagios
#!/bin/bash

COMMAND

if CONDITION; then
echo "OK"
exit 0
elif CONDITION; then
echo "Warning"
exit 1
elif CONDITION; then
echo "Critical"
exit 2
else
echo "UNKNOWN"
exit 3
fi

Стандартные плагины Nagios размещаются в /usr/lib/nagios/plugins/

Читайте про настройку Nagios сервера.