Настройка monit для отслеживания файлов .sock для сайтов php-fmp

Настройка monit для отслеживания файлов .sock для сайтов php-fmp

Я пытаюсь настроить 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. Тест соединения может использоваться только в контексте типа процесса или хост-службы.

Тесты соединения доступны только для служб процесса или хоста.

Связанный контент