Мониторинг работника очереди Laravel с помощью Monit

В настоящее время я рассматриваю возможность перехода от Supervisor к Monit для мониторинга работника очереди Laravel. Основная причина - это возможность контролировать процессор, память и устанавливать оповещения по электронной почте (например, с Supervisor, я должен установить другой пакет), так как я хочу в ближайшее время отслеживать другие вещи, такие как Redis и, возможно, общую стабильность и производительность веб-сервера.

Насколько мне известно, Monit более надежен и подходит для работы.

Вся документация, которую я смог найти о мониторинге Laravel и Queue/Job, относится к использованию Supervisor, и, пытаясь настроить его вручную, я застрял с настройкой pid-файла для прослушивателя очереди (я не являюсь системным администратором).

Есть ли причина для Laravel одобрить только Supervisor и вообще не упоминать Monit? ( https://laravel.com/docs/5.3/queues)

Если нет - может кто-нибудь помочь с настройкой конфигурации Monit для работника очереди Laravel?

Предполагая, что у меня есть проект под /var/www/html/laravel и я хотел бы, чтобы процесс контролировался /var/www/html/laravel/artisan queue:work --daemon

Я пытался ответить на этот вопрос, но без особого успеха.

Любая помощь будет оценена.

1 ответ

Если вам все еще нужен ответ:

Конечно, можно настроить Monit для управления своей очередью с небольшим предостережением (как упомянуто в их FAQ); вам нужно обернуть вашу команду в сценарий оболочки.

В конфигурационном файле Monit (в Ubuntu 14.04 /etc/monit/monitrc) вы можете добавить:

    # beanstalk
    check process beanstalkd with pidfile /var/run/beanstalkd.pid
    start program = "/etc/init.d/beanstalkd start"
    stop program = "/etc/init.d/beanstalkd stop"
    if failed host 127.0.0.1 port 11300 then restart
    if 15 restarts within 15 cycles then timeout
    # beanstalk-queue
    check process beanstalk-queue with pidfile /var/run/beanstalk-queue.pid
    start = "YOUR_CHOSEN_PATH/beanstalk-queue.sh start"
    stop = "YOUR_CHOSEN_PATH/beanstalk-queue.sh stop"

Затем создайте скрипт beanstalk-queue.sh в YOUR_CHOSEN_PATH:

    #!/bin/bash
    case $1 in
            start)
                    echo $$ > /var/run/beanstalk-queue.pid;
                    exec 2>&1 php /PATH_TO_YOUR_LARAVEL_INSTALLATION/artisan queue:work --daemon 1>/tmp/beanstalk-queue.out
                    ;;
            stop)  
                    kill `cat /var/run/beanstalk-queue.pid` ;;
            *)  
                    echo "usage: beanstalk-queue.sh {start|stop}" ;;
    esac
    exit 0

дай ему исполняемые права и все!

PS Каталоги, которые я использовал, предназначены для Ubuntu 14.04, проверьте другие дистрибутивы.

Другие вопросы по тегам