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...