Top.Mail.Ru

Использование Monit для мониторинга и автоматического перезапуска службы MySQL

Если вам нужно установить Monit на Ubuntu или Debian, то следуйте этой статье. Для других операционных систем установка и настройка может отличаться.

Использование Monit для мониторинга + автоматический перезапуск службы MySQL

Прежде всего, Monit нужна выбрать как мы будем проверять, работает ли MySQL.
В этой статье мы будем использовать сокет MariaDB или MySQL и его pid-файл, но это не единственный способ.

Поиск сокета MySQL Unix или TCP
MySQL может слушать как сокеты unix, так и сокеты TCP. Чтобы узнать это, используйте этой команды

grep "socket" /etc/mysql/my.cnf
 
Если вы получили в ответ:
listen = /var/run/mysqld/mysqld.sock
то MySQL использует unix-сокеты

Нам также понадобится найти pid MySQL. Его можно найти следующей командой:

sudo find /run -iname mysql*.pid
 
Вы должны увидеть что-то похожее на такой вывод:

/run/mysqld/mysqld.pid
 
Таким образом мы собрали всю информацию, необходимую для настройки Monit для мониторинга MySQL.

Настройка Monit для мониторинга MySQL, MariaDB, Percona

Создайте конфигурационный файл Monit MySQL, вы можете использовать папку conf-enabled вместо conf.d для проверки /etc/monit/monitrc.

sudo nano /etc/monit/conf.d/mysql
 

Эта конфигурация Monit MySQL предназначена для сокетов unix.

Он проверит файл mysqld.pid и если он не существует Monit попытается перезапустить его.

Monit также проверит сокет MySQL: /var/run/mysqld/mysqld.sock

check process mysql with pidfile /run/mysqld/mysqld.pid 
start program = "/usr/sbin/service mysql start" with timeout 60 seconds 
stop program = "/usr/sbin/service mysql stop" 
if failed unixsocket /var/run/mysqld/mysqld.sock then restart
 

Проверьте, что конфигурация Monit имеет допустимый синтаксис

sudo monit -t
 

Вы должны увидеть это сообщение, указывающее, что синтаксис Monit в порядке.

Control file syntax OK
 

Затем перезагрузите Monit, чтобы активировать конфигурацию

sudo service monit reload
 

Вы можете проверить свой статус MySQL Monit на порте 2812 или какой-либо другом порте, на который вы указали Monit, должен работать.
Теперь ваш MySQL-сервис будет автоматически перезагружен, если он когда-либо провалится.
Дата публикации: 18-07-2021, 17:06