首页 > 代码库 > supervisord监控详解

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命令。

         Reload重新载入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

 

其他的命令就不在介绍了,用的比较少。