supervisord监控服务常用技巧

来源:互联网 发布:北方工业大学知乎 编辑:程序博客网 时间:2024/05/17 00:07

supervisord(http://supervisord.org/introduction.html)是一个非常优秀的进程管理工具,使用Python开发。它可以在类UNIX系统的方式让用户来准确地监视和控制后台一定数量的服务进程。并作为一个天使进程让后台进程在当发生内部错误退出、或者进程被意外杀死时自动重启。除此之外,supervisord可以监控TCP端口,让其他主机通过客户端了命令supervisorctl通过HTTP协议直接对Server端进程进行启停,避免让进程/服务器管理者直接接触Shell或root用户。进程之间也有一个优先级和进程组关系,让管理员使用start all和stop all的关系来启动。

1.手动启动:

supervisord -c /etc/supervisor/supervisord.conf

可以通过

pstree -p | grep supervisord

命令查看服务已启动,还可以查看log日志

cat /tmp/supervisord.log

2.用 supervisorctl 查看已经被监控的program

注:直接用 #supervisorctl 会提示:http://localhost:9001 refused connection

supervisorctl -c /etc/supervisor/supervisord.conf

进入之后,执行reload的命令可以重启监控服务,status命令查看运行状态。

3.supervisor 比较适合监控业务应用,且只能监控前台程序,php fork方式实现

的daemon不能用它监控,否则supervisor> status 会提示:BACKOFF  Exited too quickly (process

log may have details)

4.两个命令
supervisord : supervisor的服务器端部分,用于supervisor启动
supervisorctl:启动supervisor的命令行窗口,在该命令行中可执行start、stop、status、

reload等操作。

5.web管理界面
将supervisord.conf中[inet_http_server]部分做相应配置,在supervisorctl中reload即可

启动web管理界面

6. supervisord,初始启动Supervisord,启动、管理配置中设置的进程。
supervisorctl stop programxxx,停止某一个进程(programxxx),programxxx为

[program:blogdemon]里配置的值,这个示例就是blogdemon。
supervisorctl start programxxx,启动某个进程
supervisorctl restart programxxx,重启某个进程
supervisorctl stop all,停止全部进程,注:start、restart、stop都不会载入最新的配置文件。
supervisorctl reload,载入最新的配置文件,并按新的配置启动、管理所有进程。