supervisor安裝和配置指南

supervisor:是用python寫的一個進程管理工具,用來啓動,重啓,關閉進程。
注意:Supervisor只能管理非daemon的進程,也就是說Supervisor不能管理守護進程。否則提示Exited too quickly (process log may have details)異常。好比Tomcat默認是以守護進程啓動的,所以要改成了catalina.sh run,以前臺進程的方式運行,關於守護進程和非daemon進程這裏不做詳細講解,可自行百度。
具體關於supervisor的相關介紹可以到官網查看:http://supervisord.org/installing.html 英文不好的 可以用谷歌瀏覽器 對頁面進行翻譯查閱!本文只對supervisor安裝和配置做操作!

官網下載:https://pypi.org/project/supervisor/#files //當然官網說安裝有三種方式,本文用的是下載tar包解壓在centos7下 執行python腳本進行安裝 :

wget https://files.pythonhosted.org/packages/44/60/698e54b4a4a9b956b2d709b4b7b676119c833d811d53ee2500f1b5e96dc3/supervisor-3.3.4.tar.gz

tar -xf supervisor-3.3.4.tar.gz -C /usr/local/ (-C參數 是解壓到/usr/local/ 此路徑下)

cd /usr/local/supervisor-3.3.4/ (進入解壓目錄 找到setup.py 腳本 執行)

python setup.py install

安裝完畢...

在終端執行命令: echo_supervisord_conf
可以終端的stdout上打印一個“樣本”Supervisor配置文件;
然後 執行 echo_supervisord_conf > /etc/supervisor/supervisord.conf (配置文件的路徑也可以放別的地方不一定要放在etc下,但如果放別的地方,在啓動服務的時候要指定要在啓服務程序的 後面加參數"-c " 後接配置文件的的路徑纔可以,如果放在etc下系統會自動查到到配置文件的);
有關於配置文件supervisord.conf裏的詳解,如下:
;分號後邊表示的是註釋

[unix_http_server]
file=/usr/local/supervisor-3.3.4/supervisor.sock   ;UNIX socket 文件,supervisorctl 會使用
;chmod=0700                 ;socket文件的mode,默認是0700
;chown=nobody:nogroup       ;socket文件的owner,格式:uid:gid

[inet_http_server]         ;HTTP服務器,提供web管理界面
port=0.0.0.0:9001        ;Web管理後臺運行的IP和端口,如果開放到公網,需要注意安全性
username=user              ;登錄管理後臺的用戶名
password=123               ;登錄管理後臺的密碼

[supervisord]
logfile=/usr/local/supervisor-3.3.4/supervisord.log ;日誌文件,默認是 $CWD/supervisord.log
logfile_maxbytes=50MB        ;日誌文件大小,超出會rotate,默認 50MB,如果設成0,表示不限制大小
logfile_backups=10           ;日誌文件保留備份數量默認10,設爲0表示不備份
loglevel=info                ;日誌級別,默認info,其它: debug,warn,trace
pidfile=/usr/local/supervisor-3.3.4/supervisord.pid ;pid 文件
nodaemon=false               ;是否在前臺啓動,默認是false,即以 daemon 的方式啓動
minfds=1024                  ;可以打開的文件描述符的最小值,默認 1024
minprocs=200                 ;可以打開的進程數的最小值,默認 200

[supervisorctl]
serverurl=unix:///usr/local/supervisor-3.3.4/supervisor.sock ;通過UNIX socket連接supervisord,路徑與unix_http_server部分的file一致
;serverurl=http://127.0.0.1:9001 ; 通過HTTP的方式連接supervisord

;[program:tomcat] 是被管理的進程配置參數,tomcat是進程的名稱,原文用xx表示,tomcat是我要監控的對象
[program:tomcat]
command=/usr/local/tomcat/bin/catalina.sh run ; 程序啓動命令
autostart=true       ; 在supervisord啓動的時候也自動啓動
startsecs=10         ; 啓動10秒後沒有異常退出,就表示進程正常啓動了,默認爲1秒
autorestart=true     ; 程序退出後自動重啓,可選值:[unexpected,true,false],默認爲unexpected,表示進程意外殺死後才重啓
startretries=3       ; 啓動失敗自動重試次數,默認是3
user=root          ; 用哪個用戶啓動進程,默認是root
priority=999         ; 進程啓動優先級,默認999,值小的優先啓動
redirect_stderr=true ; 把stderr重定向到stdout,默認false
stdout_logfile_maxbytes=20MB  ; stdout 日誌文件大小,默認50MB
stdout_logfile_backups = 20   ; stdout 日誌文件備份數,默認是10
; stdout 日誌文件,需要注意當指定目錄不存在時無法正常啓動,所以需要手動創建目錄(supervisord 會自動創建日誌文件)
stdout_logfile=stdout_logfile=/usr/local/tomcat/logs/catalina.out
stopasgroup=true     ;默認爲false,進程被殺死時,是否向這個進程組發送stop信號,包括子進程
killasgroup=true     ;默認爲false,向進程組發送kill信號,包括子進程

;包含其它配置文件
[include]
files = /etc/supervisor/conf.d/*.conf    ;可以指定一個或多個以.conf結束的配置文件,有的是以*.ini 結尾的,這個是自定義的 不影響;

爲什麼要有[include ]呢 當我們要監控的程序進程比較多的時候,如果都像tomcat一樣都寫在此配置文件裏的話,那會管理起來很不方便,也很凌亂!所以此時需要[include]來管理其他程序進程的配置文件就非常有必要了
在/etc/supervisor/下創建conf.d文件夾 然後,touch tomcat.conf
編輯tomcat.conf:

[program:tomcat]
command=/usr/local/tomcat/bin/catalina.sh run
user=root
autorstart=true
autorestart=true
startsecs=10
startretries=3
redirect_stderr=true
stdout_logfile=/usr/local/tomcat/logs/log.txt
stderr_logfile=/usr/local/tomcat/logs/err.txt
environment=LC_ALL="C.UTF-8",LANG="C.UTF-8"

cd /usr/local/supervisor-3.3.4/supervisor 可以發現 supervisord.py
這是supervisord的啓動程序,bash環境下 可以直接啓動 執行命令: ./supervisord.py 也可以python supervisord.py 這樣啓動,這兩種方式不管哪種在不指定配置文件(supervisord.conf)路徑的情況下都會有警告的信息:
supervisor安裝和配置指南
“用戶警告:監督管理是作爲根運行的,它在默認位置(包括它當前的工作目錄)中搜索它的配置文件;您可能想要指定一個“-c”參數,指定配置文件的絕對路徑以提高安全性。
“監督”是作爲根,它在搜索”
所以執行supervisord.py的時候最好加上配置文件路徑: python supervisord.py -c /etc/supervisor/supervisord.conf 或者直接執行:supervisord -c /etc/supervisor/supervisord.conf 都可以

啓動完後 就可以瀏覽器輸入ip地址:9001 訪問了 登陸的時候配置文件裏有用戶名和密碼 默認配置的是用戶名:user 密碼123 ;

如果登陸進去看到下面的界面
supervisor安裝和配置指南
tomcat是正常的 就剛配置的,後來我又單獨配置了httpd和zabbix 都無法監控 查詢了原因才得知是開始時說的守護進程和非daemon進程的問題!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章