搜罗
互联网资源

基于centos7安装部署supervisor教程分享,值得收藏

概述

在 web 应用部署到线上后,需要保证应用一直处于运行状态,在遇到程序异常、报错等情况,导致 web 应用终止时,需要保证程序可以立刻重启,继续提供服务。因为最近系统经常GG,挂的有点莫名其妙,所以领导说需要一个工具,时刻监控 web 应用的运行情况,管理该进程。

刚好Supervisor 就是解决这种需求的工具,可以保证程序崩溃后,重新把程序启动起来等功能。下面介绍下部署教程,以下基于centos7.3系统。


相关概念

supervisor:要安装的软件的名称。

supervisord:装好supervisor软件后,supervisord用于启动supervisor服务。

supervisorctl:用于管理supervisor配置文件中program。


使用yum命令安装(需能外网访问)

# yum install epel-release
# yum install -y supervisor
# systemctl enable supervisord # 开机自启动
# systemctl start supervisord # 启动supervisord服务
# systemctl status supervisord # 查看supervisord服务状态
# ps -ef|grep supervisord # 查看是否存在supervisord进程

配置Supervisor

#vi /etc/supervisord.d/tomcat8090.ini

[program:epms] ; 程序名称,在 supervisorctl 中通过这个值来对程序进行一系列的操作
autorestart=True ; 程序异常退出后自动重启
autostart=True ; 在 supervisord 启动的时候也自动启动
startsecs=10 ; 启动10秒后没有异常退出,就表示进程正常启动了,默认为1秒
priority=1 ; 进程启动优先级,默认999,值小的优先启动
redirect_stderr=True ; 把 stderr 重定向到 stdout,默认 false
command=/home/tomcat8090/bin/catalina.sh run ; 启动命令,与手动在命令行启动的命令是一样的
user=root ; 用哪个用户启动
stdout_logfile_maxbytes=500MB ; stdout 日志文件大小,默认 50MB
stdout_logfile_backups=20 ; stdout 日志文件备份数
stdout_logfile = /home/tomcat8090/logs/catalina.out

配置如下:


重启supervisor

配置后需重启supervisor

#ps -ef|grep supervisor |grep -v 'grep' |awk '{print $2}'|xargs kill -9
#supervisord -c /etc/supervisord.conf
#supervisor
supervisor> status

测试过停止tomcat会自动拉起。


总结

最后有个小问题,如果不先停止所有管理进程,只是杀supervisor进程然后直接重启会产生多个管理进程,因为之前的tomcat进程是没有杀掉的,这时候看日志就会有端口冲突的问题了。

另外一个问题是一杀进程这个supervisor就自动重启tomcat了,那我之前写的自动部署概述

 

在 web 应用部署到线上后,需要保证应用一直处于运行状态,在遇到程序异常、报错等情况,导致 web 应用终止时,需要保证程序可以立刻重启,继续提供服务。因为最近系统经常GG,挂的有点莫名其妙,所以领导说需要一个工具,时刻监控 web 应用的运行情况,管理该进程。

 

刚好Supervisor 就是解决这种需求的工具,可以保证程序崩溃后,重新把程序启动起来等功能。下面介绍下部署教程,以下基于centos7.3系统。

 

相关概念

 

supervisor:要安装的软件的名称。

 

supervisord:装好supervisor软件后,supervisord用于启动supervisor服务。

 

supervisorctl:用于管理supervisor配置文件中program。

 

 

使用yum命令安装(需能外网访问)

 

# yum install epel-release

# yum install -y supervisor

# systemctl enable supervisord # 开机自启动

# systemctl start supervisord # 启动supervisord服务

# systemctl status supervisord # 查看supervisord服务状态

# ps -ef|grep supervisord # 查看是否存在supervisord进程

 

 

配置Supervisor

 

#vi /etc/supervisord.d/tomcat8090.ini

 

[program:epms] ; 程序名称,在 supervisorctl 中通过这个值来对程序进行一系列的操作

autorestart=True ; 程序异常退出后自动重启

autostart=True ; 在 supervisord 启动的时候也自动启动

startsecs=10 ; 启动10秒后没有异常退出,就表示进程正常启动了,默认为1秒

priority=1 ; 进程启动优先级,默认999,值小的优先启动

redirect_stderr=True ; 把 stderr 重定向到 stdout,默认 false

command=/home/tomcat8090/bin/catalina.sh run ; 启动命令,与手动在命令行启动的命令是一样的

user=root ; 用哪个用户启动

stdout_logfile_maxbytes=500MB ; stdout 日志文件大小,默认 50MB

stdout_logfile_backups=20 ; stdout 日志文件备份数

stdout_logfile = /home/tomcat8090/logs/catalina.out

配置如下:

 

 

重启supervisor

 

配置后需重启supervisor

 

#ps -ef|grep supervisor |grep -v 'grep' |awk '{print $2}'|xargs kill -9

#supervisord -c /etc/supervisord.conf

#supervisor

supervisor> status

 

测试过停止tomcat会自动拉起。

 

总结

 

最后有个小问题,如果不先停止所有管理进程,只是杀supervisor进程然后直接重启会产生多个管理进程,因为之前的tomcat进程是没有杀掉的,这时候看日志就会有端口冲突的问题了。

 

另外一个问题是一杀进程这个supervisor就自动重启tomcat了,那我之前写的自动部署tomcat脚本(每次杀掉进程替换文件)不就冲突了?这个问题还在考虑怎么解决中。

 

最后一个问题就是集群化管理了,如果有几百台服务器需要控制的话是可以考虑一下 supervisord-monitor这个集群化解决方案。tomcat脚本(每次杀掉进程替换文件)不就冲突了?这个问题还在考虑怎么解决中。

最后一个问题就是集群化管理了,如果有几百台服务器需要控制的话是可以考虑一下 supervisord-monitor这个集群化解决方案。

赞(0)
未经允许不得转载:汇维网 » 基于centos7安装部署supervisor教程分享,值得收藏
0

发表评论 抢沙发

评论前必须登录!