RoboVPS - интернет решения высокого качества

Использование 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