supervisorでQueue監視をしてみた時の話。 ITかあさん

ITかあさん

supervisorでQueue監視をしてみた時の話。

ちょっとハマったsupervisorのQueue監視。そもそも起動にすら失敗したのでクラウドメモ。

supervisord 起動までの手順

queue_6986035-1024x630

Queue管理といえばsupervisord。キュー管理といえばsupervisord。大事なことなので2回言いましたよ。
起動までに結構手間取ってしまったのでクラウドメモ。

supervisord インストール

epelリポジトリが入っているとyum でインストールが可能。

yum --enablerepo=epel install -y supervisor

/etc/supervisord.conf 設定変更

今回はLaravelのQueue管理として導入したので、対象となるコマンド、ディレクトリを設定します。

取り急ぎ、追記する形で対象のコマンドとディレクトリ、そしてログファイルを下の方に追記。

[program:hoge]<br>
command=/usr/local/bin/php /home/hoge/public_html/artisan queue:listen beanstalkd
directory=/home/hoge/public_html
priority=999 ; the relative start priority (default 999)
autostart=true ; start at supervisord start (default: true)
autorestart=true ; retstart at unexpected quit (default: true)
startsecs=10 ; number of secs prog must stay running (def. 10)
startretries=3 ; max # of serial start failures (default 3)
exitcodes=0,2 ; 'expected' exit codes for process (default 0,2)
stopsignal=QUIT ; signal used to kill process (default TERM)
stopwaitsecs=10 ; max num secs to wait before SIGKILL (default 10)
user=apache ; setuid to this UNIX account to run the program
log_stdout=true ; if true, log program stdout (default true)
log_stderr=true ; if true, log program stderr (def false)
logfile= /home/hoge/public_html/app/storage/logs/laravel-test-queue.log ; child log path, use NONE for none; default AUTO
logfile_maxbytes=10MB ; max # logfile bytes b4 rotation (default 50MB)
logfile_backups=10 ; # of logfile backups (default 10)

supervisordを起動!!

service supervisord start

何かエラる!

socket が行方不明のようだ

http_port=/var/tmp/supervisor.sock ; (default is to run a UNIX domain socket server)
[FAILED]

ソケットのありかを探す

find . -name "supervisor.sock" -ls

supervisor.sockなんてない!!!

なんかこういうの、MySQLのインストに失敗してmysql.sockが無いって言われるのとなんか似てるぞ。。?

困ったときは公式をチェック

sudo touch /var/run/supervisor.sock
sudo chmod 777 /var/run/supervisor.sock

(touchしてsockファイルを作れと。)

issuで作られたsockの場所がたまた/var/run/下な訳であって、必ずしもこのディレクトリに作ることは必須では無いと思われ。
私はとりあえずissuと同じディレクトリで作りました。

上記手順でsockを作ったら再度/etc/supervisord.confをひらいてsockのパスを修正。

supervisordを起動!!

[root@laravel]# service supervisord start
Starting supervisord: Unlinking stale socket /var/run/supervisor.sock
[ OK ]

めでたしめでたし!

監視したい機能が他にもあったら[program:プログラム名称]でどんどん設定すればよろしいはず。
コマンドとディレクトリとログファイルを設定すればよし。