2016-10-11 29 views
1

我目前正在考慮從Supervisor移動到Monit以監視Laravel隊列工作人員。主要原因是監控CPU,內存和設置電子郵件警報的能力(監督員必須安裝另一個軟件包),因爲我希望儘快監控其他事情,如Redis,或許Web服務器的整體穩定性和性能。用Monit監視Laravel隊列工作人員

對我在過程監控方面的有限知識,Monit更加穩健,適合這項工作。

我可以找到有關Laravel和Queue/Job監控的所有文檔都是指使用Supervisor,並且在嘗試手動設置時我陷入了爲隊列偵聽器設置pid文件的問題(我不是系統管理員)。

Laravel是否有理由認可只有主管而不提Monit? (https://laravel.com/docs/5.3/queues#queue-workers-and-deployment

如果沒有 - 有人可以幫助您瞭解每個Laravel隊列工作人員如何設置Monit配置?

假設我有/var/www/html/laravel下一個項目,我想過程監控是/var/www/html/laravel/artisan queue:work --daemon

我嘗試以下this question但不是很成功。

任何幫助,將不勝感激。

回答

2

如果你仍然需要一個答案:

當然是可能的設置monit的與(如their FAQ提到的)一點需要注意控制自己的隊列;你需要將你的命令包裝在shell腳本中。

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

然後創建YOUR_CHOSEN_PATH腳本beanstalk-queue.sh:

#!/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,檢查其他發行版。

相關問題