2016-10-11 3 views
1

Laravel 대기열 작업자를 모니터링하기 위해 Supervisor에서 Monit으로 이동하는 것이 현재 고려 중입니다. 주된 이유는 CPU와 메모리를 모니터링하고 전자 메일 알림을 설정하는 기능입니다 (Supervisor와 함께 afaik는 다른 패키지를 설치해야합니다). 왜냐하면 Redis와 같은 전반적인 안정성과 웹 서버의 전반적인 안정성 및 성능을 곧 모니터하고 싶기 때문입니다.Monet을 사용하여 Laravel 대기열 작업자 모니터링

공정 모니터링에 대한 나의 제한된 지식에 따르면, Monit은 더 강력하고 작업에 적합합니다.

Laravel 및 Queue/Job 모니터링에 대한 모든 문서는 수퍼바이저를 참조하며 수동으로 설정하려고 할 때 대기열 수신기의 pid 파일을 설정하는 데 어려움이 있습니다 (저는 sysadmin이 아닙니다.).

Laravel이 감독관만을 추천하고 Monit을 언급하지 않는 이유가 있습니까? (https://laravel.com/docs/5.3/queues#queue-workers-and-deployment)

만약 그렇지 않다면 누군가가 Laravel 대기열 작업자별로 Monit 구성 설정을 어떻게 할 수 있습니까?

가정 /var/www/html/laravel/artisan queue:work --daemon

내가 this question 다음하지만 많은 성공없이 시도 과정으로 모니터링 나는 /var/www/html/laravel에서 프로젝트를하고 난 할 것이다.

도움을 주시면 감사하겠습니다.

답변

2

이 경우 당신은 여전히 ​​대답이 필요합니다 설치 MONIT이 (their FAQ에서 언급 한 바와 같이) 약간의주의와 대기열을 제어하는 ​​데에

확실히 가능을; 쉘 스크립트에서 명령을 래핑해야합니다.

MONIT 설정 파일에서 (우분투 14.04의/etc/MONIT/monitrc는) 당신은 추가 할 수 있습니다

#!/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 
:

# 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" 

그런 다음 YOUR_CHOSEN_PATH에서 스크립트 beanstalk-queue.sh를 만들

실행 권한을 부여하면됩니다!

PS 내가 사용한 디렉토리는 우분투 14.04이며 다른 배포판을 확인합니다.

관련 문제