
Я пытаюсь настроить Monit так, чтобы он отслеживал домены в случае сбоя PHP. Пример:
check file php7.3-fpm-pidfile with path /var/run/php/php7.3-fpm.pid
start program = "/usr/sbin/service php7.3-fpm start" with timeout 60 seconds
stop program = "/usr/sbin/service php7.3-fpm stop"
if does not exist then restart
if failed unixsocket /run/php/php7.3-fpm-domain.co.uk.sock then restart
if failed unixsocket /run/php/php7.3-fpm-domain2.co.uk.sock then restart
if failed unixsocket /run/php/php7.3-fpm-domain3.co.uk.sock then restart
Вот простой тест:
check file php7.3-fpm-pidfile with path /var/run/php/php7.3-fpm.pid
start program = "/usr/sbin/service php7.3-fpm start" with timeout 60 seconds
stop program = "/usr/sbin/service php7.3-fpm stop"
if does not exist then restart
if failed unixsocket /run/php/php7.3-fpm-domain.co.uk.sock then restart
Однако при перезапуске Monit происходит сбой финального этапа:
/etc/monit/conf-enabled/php-fpm:14: синтаксическая ошибка «unixsocket»
Я наМонит 5.31.0, который должен быть достаточно новым, чтобы иметь unixsocket
возможность. Что я упускаю?
решение1
Вы уверены, что проверите файл? С моей точки зрения, вы проверите процесс?
Мое предложение проверить unixsocket и процесс:
check process php7.3-fpm-pidfile with path /var/run/php/php7.3-fpm.pid
start program = "/usr/sbin/service php7.3-fpm start" with timeout 60 seconds
stop program = "/usr/sbin/service php7.3-fpm stop"
if does not exist then restart
if failed unixsocket /run/php/php7.3-fpm-domain.co.uk.sock then restart
Вы не можете использовать все доступные тесты (операторы «if») во всех проверках.
monit -v -t
Process Name = php7.3-fpm-pidfile
Pid file = /var/run/php/php7.3-fpm.pid
Monitoring mode = active
On reboot = start
Start program = '/usr/sbin/service php7.3-fpm start' timeout 1 m
Stop program = '/usr/sbin/service php7.3-fpm stop' timeout 30 s
Existence = if does not exist then restart
Unix Socket = if failed /run/php/php7.3-fpm-domain.co.uk.sock type TCP protocol DEFAULT with timeout 5 s then restart
Фрагмент из руководства, см.https://www.mmonit.com/monit/documentation/monit.html
ИСПЫТАНИЯ СОЕДИНЕНИЙ
Monit может выполнять тестирование соединения через сетевые порты или через сокеты Unix. Тест соединения может использоваться только в контексте типа процесса или хост-службы.
Тесты соединения доступны только для служб процесса или хоста.