1. 程式人生 > 其它 >supervisor安裝以及監控管理rabbitmq消費者程序

supervisor安裝以及監控管理rabbitmq消費者程序

簡介:Supervisor是用Python開發的一套通用的程序管理程式,能將一個普通的命令列程序變為後臺daemon,並監控程序狀態,異常退出時能自動重啟。

1、安裝

apt-get install supervisor

2、複製配置檔案(否則會無法啟動)

cp /etc/supervisor/supervisor.conf /etc/

說明:預設/etc/supervisor.conf為空,需要將/etc/supervisor/supervisor.conf的內容複製一份到/etc/supervisor.conf中,否則啟動不了。

3、編寫配置檔案

# 建立檔案 rabbitmq-worker.conf並寫入下面配置

# 設定程序的名稱,使用 supervisorctl 來管理程序時需要使用該程序名 [program:rabbitmq
-worker]

# 預設為 %(program_name)s,即 [program:x] 中的 x,後面接程序數 process_name
=%(program_name)s_%(process_num)02d

# 需要啟動執行的命令,這塊就是填入rabbitmq消費者指令碼命令,注意,docker這塊不能有-it引數,否則報錯無法啟動 command
=docker exec php7.4-fpm php /var/www/html/rabbitmq/artisan rabbitmq:work --queue=Test

# 使用 root 使用者來啟動該程序 user
=root

# 在 supervisord 啟動的時候也自動啟動 autostart
=true

# 程式崩潰時自動重啟,重啟次數是有限制的,預設為3次 autorestart=true

# 程序數 numprocs=2

# 重定向輸出的日誌 redirect_stderr=true

# 日誌路徑 stdout_logfile=/www/rabbitmq/rabbitmq_worker.log

4、相關命令說明

supervisord : supervisor的伺服器端部分,用於supervisor啟動
supervisorctl:啟動supervisor的命令列視窗,在該命令列中可執行start、stop、status、
running:程序處於執行狀態
starting:Supervisor 收到啟動請求後,程序處於正在啟動過程中
stopped:程序處於關閉狀態
stopping:Supervisor 收到關閉請求後,程序處於正在關閉過程中
backoff:程序進入 starting 狀態後,由於馬上就退出導致沒能進入 running 狀態
fatal:程序沒有正常啟動
exited:程序從 running 狀態退出

5、常用命令

1、supervisorctl update   更新配置後必須執行更新命令才生效
2、supervisorctl status     檢視supervisor程序
3、supervisorctl start rabbitmq-worker:*    啟動某個supervisor程序
4、supervisorctl stop rabbitmq-worker:*    停止某個supervisor程序
5、supervisorctl stop all    停止所有supervisor程序
6、supervisorctl restart rabbitmq-worker:*   重啟某個supervisor程序
7、supervisorctl reload    載入最新的配置檔案,並按新的配置啟動、管理所有程序。
8、supervisord    啟動supervisord

補充說明:
supervisorctl status 列表引數說明
第一列是服務名;第二列是執行狀態,RUNNING表示執行中,FATAL 表示執行失敗,STARTING表示正在啟動,STOPED表示任務已停止; 第三/四列是程序號,最後是任務已經執行的時間。

6、效果

運行了2個rabbitmq消費者,這個數量是在配置裡面的numprocs的數量,進rabbitmq管理後臺可以看到2個消費者