Для мониторинга MySQL имеется несколько плагинов, но мы обойдёмся штатными утилитами Nagios Core.
Проверяем наличие файла плагина:
# find / -name "check_mysql" -type f /usr/lib64/nagios/plugins/check_mysql
На сервере с установленным MySQL, который будем мониторить, создаём пользователя, с доступом только с хоста мониторинга:
MariaDB [vexim]> create user 'nagios'@'77.***.***.40' identified by 'p@ssw0rd'; Query OK, 0 rows affected (0.33 sec)
И тоже проверяем наличие файла check_mysql.
Открываем доступ на фаерволе для сервера мониторинга к порту MySQL:
# iptables -I INPUT 21 -p tcp -s 77.***.***.40 --dport 3306 -j ACCEPT
# service iptables save iptables: Saving firewall rules to /etc/sysconfig/iptables:[ OK ]
С сервера мониторинга запускаем проверку:
# /usr/lib64/nagios/plugins/check_mysql -H 77.***.***.20 -u nagios -p p@ssw0rd Uptime: 875899 Threads: 3 Questions: 1518011 Slow queries: 23 Opens: 12205 Flush tables: 2 Open tables: 64 Queries per second avg: 1.733
Работает, всё в порядке.
В конец файла /etc/nagios/objects/commands.cfg добавляем:
# MySQL
define command{
command_name check_mysql
command_line /usr/lib64/nagios/plugins/check_mysql -H '$HOSTADDRESS$'
}
define command{
command_name check_mysql_cmdlinecred
command_line /usr/lib64/nagios/plugins/check_mysql -H '$HOSTADDRESS$' -u '$ARG1$' -p '$ARG2$'
}
define command{
command_name check_mysql_database
command_line /usr/lib64/nagios/plugins/check_mysql -d '$ARG3$' -H '$HOSTADDRESS$' -u '$ARG1$' -p '$ARG2$'
}
Примечание: на Debian/Ubuntu эти проверки уже вроде есть в наборе, в CentOS — надо добавить вручную.
Тут три типа проверки, но пока мы будем использовать только check_mysql_cmdlinecred.
Редактируем файл настроек хоста, на котором расположен сервер MySQL, в данном случае это будет /etc/nagios/servers/venti.cfg.
Добавляем в него описание новой проверки:
define service {
use local-service
host_name venti
service_description MYSQL
check_command check_mysql_cmdlinecred!nagios!p@ssw0rd
use generic-service
notifications_enabled 1
notification_interval 1
}
Проверяем настройки:
# nagios -v /etc/nagios/nagios.cfg ... Total Warnings: 0 Total Errors: 0 Things look okay - No serious problems were detected during the pre-flight check
Перезапускаем Nagios:
# service nagios restart Running configuration check...done. Stopping nagios: done. Starting nagios: done.
И смотрим в Services:
В случае ошибки вида:
[1417453973] Warning: Return code of 127 for check of service ‘MYSQL’ on host ‘venti’ was out of bounds. Make sure the plugin you’re trying to run actually exists.
проверьте доступ к серверу MySQL для созданного пользователя, и наличие файла плагина, в данном случае — /usr/lib64/nagios/plugins/check_mysql.






