队列|supervisord监控服务常用技巧
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 会提示:BACKOFFExited 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为
【队列|supervisord监控服务常用技巧】[program:blogdemon]里配置的值,这个示例就是blogdemon。
supervisorctl start programxxx,启动某个进程
supervisorctl restart programxxx,重启某个进程
supervisorctl stop all,停止全部进程,注:start、restart、stop都不会载入最新的配置文件。
supervisorctl reload,载入最新的配置文件,并按新的配置启动、管理所有进程。
推荐阅读
- 《数据结构与算法之美》——队列
- 监控nginx
- Redis——发布订阅/消息队列
- sentry搭建错误监控系统(二)
- 网络|一文彻底搞懂前端监控
- MQ(消息队列)功能介绍
- Java深入了解数据结构之栈与队列的详解
- linux|linux|常用的系统监控命令
- Linux监控工具(atop安装使用)
- influxDB|influxDB + grafana + python 监控windows服务器流量