使用Superivisor監控管理程序

2021-10-25 07:30:59 字數 3125 閱讀 7696

1.  superivisor簡介:

supervisor是乙個c/s系統,它允許使用者在類unix系統上監控和管理一系列的程序。你可以把乙個程序以daemon的形式用supervisor來管理。

2.  安裝:

使用pip來安裝supervisor:

[root@test1 ~]# pip install supervisor
如果centos系統中沒用安裝pip,可以通過如下命令安裝pip:

[root@test1 ~]# yum -y install python-pip
3.  配置檔案:

supervisor的配置檔案需要手動執行命令來生成,如下:

[root@test1 ~]# echo_supervisord_conf > /etc/supervisord.conf
4.  常用的配置項:

command=/bin/cat                 ---- 啟動程式時執行的命令;

directory=/tmp ---- 執行目錄,若有/home/test/test1.py,將directory設定成/home/test,則command只需設定成python test1.py。否則command必須設定成絕對路徑;

process_name=%(program_name)s ---- 程序啟動,使用program name作為程序名,預設值;

autostart=true ---- 隨supervisor啟動一起啟動;

startsecs=1 ---- 等待多長時間後認為程式啟動成功,預設為1;

startretries=3 ---- 啟動失敗時的重試次數,預設為3;

user=root ---- 以root身份執行程式;

priority=999 ---- 優先順序。值越高,最後啟動,最先被關閉,預設值999。

5.  命令:

supervisor有兩個可執行程式 :supervisord 和 supervisorctl。

supervisord用來依據配置檔案的策略管理後台守護程序;

supervisorctl管理員用於向後台守護程序傳送「啟動/重啟/停止」等指令。

6.  乙個例子,使用supervisor管理乙個python flask程式hello.py:

[program:flasky]

directory=/opt/flasky/

command=/opt/flasky/venv/bin/python hello.py runserver --host 192.168.1.101 -p 8080

autostart=true

startsecs=10

startretries=2

user=root

stderr_logfile=/tmp/flasky-error.log

stdout_logfile=/tmp/flasky-error.log

7.  啟動supervisord:

[root@test1 ~]# /usr/bin/supervisord -c /etc/supervisord.conf
8.  檢視程序狀態:

[root@test1 ~]# /usr/bin/supervisorctl status

flasky starting

[root@test1 ~]# /usr/bin/supervisorctl status

flasky running pid 46778, uptime 0:00:10

[root@test1 ~]# /usr/bin/supervisorctl status

flasky running pid 46778, uptime 0:00:13

9.  supervisorctl管理命令:

supervisorctl status                ---- 檢視supervisor管理程序的狀態;

supervisorctl stop programname ---- 用來關閉某個程序,programname指上例中的flasky;

supervisorctl start programname ---- 用來啟動某個程序;

supervisorctl restart programname ---- 用來重啟某個程序;

supervisorctl stop all ---- 關閉所有的程序;

supervisorctl reload ---- 停止所有程序,載入最新的配置檔案,並根據最新的配置啟動、管理程序;

supervisorctl update ---- 根據最新的配置檔案,啟動新配置的程序或重啟配置有變化的程序,沒有改動過的程序不會受到影響;

supervisorctl shutdown ---- 關閉supervisor服務。

10、執行supervisorctl時異常:

error: , : file:
這時可以在執行supervisorctl時通過-c選項指定配置檔案的位置:

[root@test1 ~]# /usr/bin/supervisorctl -c /etc/supervisord.conf status
曾經有一次面試,面試官提問:「有乙個指令碼,如何讓它在開機之後一小時的時候開始執行?」

我答:「在指令碼開頭加上『sleep 3600』,再把指令碼加入rc.d目錄開機啟動。」

其實,用supervisor就可以更合理地實現。

使用Ganglia監控Hadoop

hadoop本身提供了很多監控工具的介面,如jmx nagios ganglia等。使用ganglia監控hadoop,配置起來非常簡單,只需要修改 hadoop home conf hadoop metrics.properties檔案,把相關的配置段修改為下面的示例 configuration ...

使用Nagios監控VMware ESXi

nagios是一款面向外掛程式的管理軟體,通常安裝在linux伺服器上。很多企業系統管理員使用nagios記錄伺服器以及網路中其他重要裝置的當前狀態。如果你正在尋找vmware監控工具,nagios是個不錯的選擇。讓我們一起來了解一下如何在現有的nagios環境中整合對vmware esxi的監控。...

使用zabbix監控docker

使用zabbix監控docker 環境 服務端 centos6.5 客戶端 ubuntu14.04 參考部落格 可以直接執行命令 apt get install docker.io 安裝版本不是最新 或者執行下面這條命令安裝最新版 curl ssl sudo sh 安裝完成後可執行 docker v...