2016-10-11 6 views
1

現在、Laravelキューワーカーを監視するために、SupervisorからMonitへの移行を検討中です。主な理由は、RedisやWebサーバーの全体的な安定性やパフォーマンスなど、すぐに他のものを監視したいので、CPU、メモリ、および電子メールアラートを監視する能力です(Supervisorの場合は別のパッケージをインストールする必要があります)。Monetを使用したLaravel Queueワーカーの監視

プロセスモニタリングに関する私の限られた知識では、Monitはより堅牢で仕事に適しています。

私がLaravelとQueue/Jobの監視について知っているすべてのドキュメントは、Supervisorの使用を参照しています。手動でセットアップしようとすると、キューリスナーのpidファイルを設定することに固執しました(私はsysadmin )。

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

は(their FAQで述べたように)少し警告を使用してキューを制御するために、セットアップMONITには確かに可能です。シェルスクリプトでコマンドをラップする必要があります。あなたが追加することができます(Ubuntuの14.04は/ etc/MONIT/monitrc上)MONIT設定ファイルで

# 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用です。他のディストリビューションを確認してください。

関連する問題