天天看點

supervisord監控詳解

1 Supervisord的安裝

Supervisord是運作在python環境下的服務監控程式。是以在安裝supervisord之前必須有python環境。

如果系統沒有PYTHON,鍵入:yum install python(CENTOS)或者apt-get installpython(UBUNTU)

鍵入:yum install python-setuptools

         easy_install supervisor

       兩個指令。進行supervisor安裝

如果成功。鍵入: echo_supervisord_conf,會顯示一個superviscord_conf 的配置模闆。

鍵入:echo_supervisord_conf >/etc/supervisord.conf

生成一個supervisord的配置檔案

安裝就完成了

2啟動supervisord

鍵入:supervisord

         啟動supersord服務程式

鍵入:supervisordctrl

可以進行一系列指令控制。最最要的有reload start stop restart指令。

supervisord.conf,一般隻在修改supervisord.conf後使用,這個會讓修改相關程式配置的程式關閉。沒有修改過的程式配置的程式不會有影響。

       Start啟動應用程式,可以批處理多個程式

       Stop停止應用程式,可以批處理多個程式

       Restart重新開機應用程式,可以批處理多個程式

3Supervisord的配置檔案

鍵入: vim /etc/supervisord.conf

在檔案的末尾添加一個storm ui程式監控,配置如下:

;storm ui

[program:ui]

command=/usr/storm/storm/ui-sv.sh    ;被監控程式指定的運作腳本

directory=/usr/storm/storm                      ;被監控程式運作的路徑

autostart=false                                             ;是否随supervisord程序啟動而啟動,包括reloadconf

autorestart=true                                          ;被監控程式異常中斷是否自動重新開機

startsecs=5                                                    ;被監控程式啟動時持續時間

startretries=5                                                ;被監控程式啟動失敗重試的次數

redirect_stderr=true                                   ;是否重定向std err

stdout_logfile=/tmp/ui-sv.log                    ;stdou 重定向輸出檔案

stdout_events_enabled=true                    ;是否允許stdout事件

stopsignal=QUIT                                           ;被監控程式kill的信号

如果command的欄運作的是shell腳本,那麼在shell 腳本啟動被監控程式時要用exec修飾。例如:

#!/bin/bash

exec /home/scott/install/storm/storm-0.9.0.1/bin/stormnimbus

否則,supervisord停止不了啟動的程序.除此之外,shell腳本裡不能出現&之類的背景運作符号。

4supervisorctl指令

4.1reload指令

當你修改了supervisord.conf時,要讓配置立即生效,鍵入:

         supervisorctlreload

配置就生效了

4.2start指令

當你需要啟動一個已配置的program時,鍵入:

         Supervisorctlstart xxx

值得注意的是 xxx是supervisord.conf指定的名字,例如:

[program:ui],ui就是supervisorctl要控制的程式xxx

這個指令也可以批處理一批程式

         Supervisorctlstar xxx1 xxx2 xxx3 …….

被監控程式的啟動順序和start參數順序一緻

4.3stop指令

當你需要停止一個已監控的程式時,鍵入:

         Supervisorctlstop xxx

這個指令和start用法一緻,可以批處理多個程式。

4.4restart

當你需要重新開機一個被監聽程式時,鍵入:

         Supervisorctlrestart xxx

這個指令和start用法一緻,可以批處理多個程式。

4.5status

當你需要檢視supervisord監控了什麼程式,你隻需要鍵入:

Supervisorctl status

就可以顯示:

kafka                            STOPPED    May 27 01:57 PM

nimbus                           STOPPED    Not started

sv                               RUNNING    pid 24072, uptime 1:05:41

ui                               STOPPED    Not started

其他的指令就不在介紹了,用的比較少。