supervisor守護程式並配置郵件報警

GGXXLL發表於2020-12-11

supervisor安裝使用, 並配置服務崩潰郵件報警

環境

系統: Centos7, python3

安裝依賴:

yum install -y supervisor sendmail mailx && pip3 install superlance

配置郵件:

  1. vim /etc/mail.rc, 然後新增如下內容:
    # 發件人郵箱
    set from=xxx@xxx.com  
    # smtp服務
    set smtp=smtps://smtp.xxx.com:465  
    # 使用者名稱
    set smtp-auth-user=xxx@xxx.com  
    # 密碼
    set smtp-auth-password=xxx  
    set ssl-verify=ignore
  2. 測試郵件: echo 'this is test'| /usr/bin/mail -s 'xxxxx' xxx@xx.com

配置專案:

編輯專案的配置檔案, vim /etc/supervisord.d/xxx.ini

# 專案相關配置
[program:projectName]
# 設定命令在指定的目錄內執行
directory=projectPath
# 這裡為您要管理的專案的啟動命令
command=projectRunCmd
# 以哪個使用者來執行該程式
user=root
# supervisor 啟動時自動該應用
autostart=true
# 程式退出後自動重啟程式
autorestart=true
# 程式持續執行多久才認為是啟動成功
startsecs=2
# 重試次數
startretries=3
# stderr 日誌輸出位置
stderr_logfile=path/stderr.log
# stdout 日誌輸出位置
stdout_logfile=path/stdout.log
# 報警郵件相關配置
[eventlistener:crashmail]
command=crashmail -p senddemo -s "echo 'projectName crashed!!'| /usr/bin/mail -s 'projectName' xxx@xx.com,xxx@xx.com"
events=PROCESS_STATE_EXITED
## stderr 日誌輸出位置
stderr_logfile=path/crashmail/stderr.log
## stdout 日誌輸出位置
stdout_logfile=path/crashmail/stdout.log

相關命令:

supervisord -c /etc/supervisord.conf # 啟動supervisor, 然後才可可以使用supervisorctl
supervisorctl stop program_name  # 停止某一個程式,program_name 為 [program:name] 裡的 name
supervisorctl start program_name  # 啟動某個程式
supervisorctl restart program_name  # 重啟某個程式
supervisorctl stop groupworker:  # 結束所有屬於名為 groupworker 這個分組的程式 (start,restart 同理)
supervisorctl stop groupworker:name1  # 結束 groupworker:name1 這個程式 (start,restart 同理)
supervisorctl stop all  # 停止全部程式,注:start、restartUnlinking stale socket /tmp/supervisor.sock
supervisorctl reload  # 載入最新的配置檔案,停止原有程式並按新的配置啟動、管理所有程式
supervisorctl update  # 根據最新的配置檔案,啟動新配置或有改動的程式,配置沒有改動的程式不會受影響而重啟
本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章