ИТ Блог. Администрирование серверов на основе Linux (Ubuntu, Debian, CentOS, openSUSE)

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

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

Monit может использоваться для мониторинга ваших услуг на вашем VPS или выделенном сервере. Вы можете использовать Monit, чтобы убедиться, что MySQL (MariaDB, Percona и т.д.) всегда работают в случае сбоя из-за брут-форс атак ботов или у когда заканчиваются ресурсы.

Monit проверит процесс MySQL, посмотрев на сокет unix, который он прослушивает. Если сокет не может быть обнаружен, Monit перезапустит службу MySQL. Таким образом, вы гарантируете, что ваш веб-сайт, возможно, который работает на WordPress, всегда запускает необходимые процессы.

Если вам нужно установить Monit на Ubuntu или Debian, то следуйте этому руководству.

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

Monit нужна информация, чтобы проверить, работает ли MySQL.

Мы будем использовать сокет MariaDB или MySQL и его pid-файл.

Поиск сокета MySQL Unix или TCP

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

grep "socket" /etc/mysql/my.cnf

 

Если вы видите этот вывод, то MySQL использует unix-сокеты

listen = /var/run/mysqld/mysqld.sock

 

Поиск файла pid MySQL

Monit также нуждается в файле pid

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, должен работать.

Использование Monit для мониторинга

Теперь ваш MySQL-сервис будет автоматически перезагружен, если он когда-либо провалится.

 

Exit mobile version