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管理として導入したので、対象となるコマンド、ディレクトリを設定します。

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

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:プログラム名称]でどんどん設定すればよろしいはず。
コマンドとディレクトリとログファイルを設定すればよし。