设为首页 收藏本站
查看: 1533|回复: 0

[经验分享] Linux进程监控工具:Supervisor

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2016-7-18 10:23:21 | 显示全部楼层 |阅读模式
前言

我们知道现在的APP后台服务,必须可靠的运行,我们希望如果SOA服务进程挂了,可以迅速重启,那么就需要进程的监控了,而在Linux下Supervisor是管理进程的利器。Supervisor就是用Python开发的一套通用的进程管理程序,能将一个普通的命令行进程变为后台daemon,并监控进程状态,异常退出时能自动重启。想一想,其实不仅仅是在SOA服务上可以进行监控,还可以对Nginx等提供服务的任何进程进行监控和管理。

安装Supervisor
如果采用离线安装的方式,涉及到诸多前置软件包的安装,而且还需要相应版本,比如Python2.7。如果python的版本比较低,还需要升级,并且最好采用链接的方式改动,而不是完全卸载低版本。

博主已经实践成功,如下:【忽略jdk以及git】
wKiom1eKIs2w1nuJAAAsK9bcxfc346.jpg
相应软件包直接利用python setup.py install进行安装即可。

注意,Supervisor被安装到了哪里?如果没有明确指定,其实是被安装到了python目录下,因为说白了就是python的一个模块而已,如下图所示:
wKiom1eKI8nyaWYAAAB0mp7ro-0908.jpg

在这里,我们看到了supervisord,supervisord命令,其实这就是在公司常用的2个基础命令。

安装完毕后,利用echo_supervisord_conf命令生成默认的基础配置,在/etc下存在supervisord.conf.

我们可以大概扫一眼,典型的分段式配置:
wKiom1eKJQHwXQYyAABrpooed2o473.jpg

实际上,一般在公司,我们是涉及到非常多的项目会利用到Supervisor,我们并不会将所有的配置写到一个文件里面,而是根据业务各自提供各自的配置,然后include即可。可以看个例子:
wKiom1eKJaWjqOG6AAAGSEsd-T4308.jpg


监控实践

第一,提供配置文件
我们可以在/supervisor/etc/test.conf中提供以下内容:
wKioL1eKJmiC4pehAAAWVdiN68w273.jpg
既然要交给Supervisor进行管理,那么自然要告诉她,你的脚本路径在哪里,是否随着Supervisor启动而启动,输出的日志路径在哪里等一些基本信息。
除此之外,Supervisor还可以一次性帮你启动多个进程,比如一台机器上启动多个SOA服务实例,统一进行管理。
上面的配置就是在告诉Supervisor启动3个进程实例,而这每一个实例的名称就是process_name。其中program_name其实就是helloworld。

第二,启动Supervisord服务
wKiom1eKKAPQM5mlAAAJ3UNz0YY364.jpg
告诉配置文件在哪里,然后利用supervisord启动即可,如果不提供配置文件路径,那么将按照默认的路径逐级查找。

我们可以利用ps来查看下,发生了什么?
wKioL1eKKPDjnbTRAABEzrK1yFw701.jpg

这里,我们清楚的看到了,Supervisord的服务进程,以及她为我们启动的3个实例进程。

我们再来看看/myshell/supervisor4test.sh的内容是什么?
wKioL1eKKcqCc1DOAAASG_O3S2Y035.jpg

我们来看看日志的输出:

wKioL1eKKjmTI_pFAAANjXpIsM8454.jpg

我们清楚的看到了,有3个进程同时在输出,验证了上面我们所提及的。

我们可以kill -9的方式挂掉这3个进程中的几个,你会发现,马上Supervisor将替我们重启!

第三:利用supervisorctl进行进程管理

wKiom1eKKt2zBBsoAABbRbzDWlA662.jpg

到这里,Supervisor的初步使用就介绍完毕了,下文贴出一些基本配置说明,供大家参考。

wKiom1eKK-Djhf6nAABQMBGDrss826.jpg

Good Night!



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-245719-1-1.html 上篇帖子: Linux下如何挂载windows下的共享目录 下篇帖子: Linux下查看哪些文件占用磁盘空间比较大 Linux 监控
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表