2016-10-11 7 views
1

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

К моим ограниченным знаниям в мониторинге процессов, Монит является более надежным и подходящим для работы.

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

Есть ли причина, по которой Laravel поддерживает только Супервизора и вообще не упоминает Монита? (https://laravel.com/docs/5.3/queues#queue-workers-and-deployment)

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

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

Я попытался следующие this question, но без особого успеха.

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

ответ

2

В случае, если вы все еще нужен ответ:

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

В MONIT конфигурационном файле (на Ubuntu 14.04/и т.д./монит/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, проверьте другие дистрибутивы.