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

Использование Monit для мониторинга+ автоматическую перезагрузку сервиса php7-fpm

Использование Monit для мониторинга+ автоматическую перезагрузку сервиса php7-fpm

Monit может быть использован для мониторинга ваших услуг на вашем VPS или выделенном сервере. Вы можете использовать Monit, чтобы убедиться, что php7-fpm всегда работает, а не остановлен или завис – это очень редко, но это лучше, чем потом сожалеть.

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

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

Использование Monit для мониторинга + автоматическую перезагрузку сервиса php7-fpm

Monit необходима информация, чтобы проверить, на наличие работающего php7-fpm.

Мы будем использовать сокет php7-fpm и его файл PID.

Нахождение php7-fpm или TCP сокета

php7-fpm может прослушивать либо сокеты Unix или TCP сокеты. Для того, чтобы выяснить, используем эту команду

grep "listen =" /etc/php/7.0/fpm/pool.d/www.conf

 

Если вы видите этот вывод, то php7-fpm использует UNIX сокеты

listen = /run/php/php7.0-fpm.sock

 

Если вы видите этот вывод, то php7-fpm использует TCP сокеты, интерфейс обратной петли 127.0.0.1 на порту 9000

listen = 127.0.0.1:9000

 

Нахождение файла Pid php7-fpm

Monit нужен файл PID:

sudo find /run -iname php*.pid

 

Вы должны увидеть результаты, примерно такие

/run/php/php7.0-fpm.pid

 

Теперь мы имеем информацию, необходимую для настройки Monit для мониторинга php7-fpm.

Настройка Monit для мониторинга php7-fpm

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

sudo nano /etc/monit/conf.d/php7-fpm

 

Это конфигурация Monit php7-fpm для UNIX сокетов.

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

Monit также собирается проверить, что php7-fpm Unix сокет существует: /var/run/php7.0-fpm.sock

check process php7-fpm with pidfile /run/php/7.0/php7-fpm.pid
    start program = "/usr/sbin/service php7.0-fpm start" with timeout 60 seconds
    stop program  = "/usr/sbin/service php7.0-fpm stop"
    if failed unixsocket /var/run/php7.0-fpm.sock then restart

 

Если вы используете TCP сокеты, то это будет конфигурация Monit.

Monit ищет демон, который прослушивает 127.0.0.1 по порту 9000, если он не найден Monit перезагрузит php7-fpm после 3 циклов центрального процессора.

Измените 127.0.0.1 чтобы соответствовать вашему интерфейсу и 9000 на другой порт.

check process php7-fpm with pidfile /run/php/7.0/php7-fpm.pid
    start program = "/usr/sbin/service php7.0-fpm start" with timeout 60 seconds
    stop program  = "/usr/sbin/service php7.0-fpm stop"
    if failed host 127.0.0.1 port 9000 protocol tcp for 3 cycles then restart

 

Проверьте конфигурацию MONIT на правильный синтаксис

sudo monit -t

 

Вы должны увидеть это сообщение, указывающее, что с синтаксисом в MONIT все ОК.

Control file syntax OK

 

Затем перезагрузите Monit для активации конфигурации

sudo service monit reload

 

Вы можете проверить в MONIT статус php7-fpm по порту 2812 или в зависимости от того порта, который вы указали в Monit.

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

Exit mobile version