首页 > 代码库 > 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
其他的命令就不在介绍了,用的比较少。