1.1 简介
用以监控服务器的运行,发现问题能立即自动预警及自动重启等功能。
Supervisor类似于monit,monit和supervisor的一个比较大的差异是supervisor管理的进程必须由supervisor来启动,
monit可以管理已经在运行的程序;supervisor还要求管理的程序是非daemon程序,supervisord会帮你把它转daemon程序,因此如果用supervisor来管理nginx的话,必须在nginx的配置文件里添加一行设置daemon off让nginx以非daemon方式启动。
因为Supervisor是Python开发的,安装前先检查一下系统否安装了Python2.4以上版本。下面以CentOS7,Python2.7版本环境下,介绍Supervisor的安装与配置步聚:
1.2 应用场景
公司服务器众多,项目多以tomcat为主,而且服务器上tomcat节点比较多,此时通过脚本管理tomcat已经非常棘手,就需要一个统一的进程管理工具去统一管理项目。因此选用supervisor来管理。
==注意:supervisor只能管理前台进程。==
1.3 安装配置
supervisor安装完成后会生成三个执行程序:
- supervisord : supervisor的守护进程服务(用于接收进程管理命令)
- supervisorctl : 客户端(用于和守护进程通信,发送管理进程的指令)
- echo_supervisord_conf : 生成初始配置文件程序。
环境:Centos7
主机:10.0.0.41
#安装supervisor
yum -y install supervisor
#设置开机自启动
systemctl enable supervisord
#常用supervisorctl命令
supervisorctl status
supervisorctl stop tomcat
supervisorctl start tomcat
supervisorctl restart tomcat
supervisorctl update
通过supervisor管理tomcat
首先配置jdk环境
# tar -zxvf jdk-8u60-linux-x64.tar.gz -C /usr/local/
# chown -R root.root /usr/local/jdk1.8.0_60
# cat>>/etc/profile<<\EOF
###jdk环境###
export JAVA_HOME=/usr/local/jdk1.8.0_60
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
export CLASSPATH=.$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$JAVA_HOME/lib/tools.jar
EOF
# source /etc/profile
# java -version
安装tomcat
# tar zxf apache-tomcat-8.5.35.tar.gz
# mkdir -p /opt/tomcat01
# cp -a apache-tomcat-8.5.35/* /opt/tomcat01/
开启tomcat
创建supervisor管理tomcat的子配置文件:
# vim /etc/supervisord.d/tomcat01.ini
[program:tomcat01]
command=/opt/tomcat01/bin/catalina.sh run
environment=JAVA_HOME="/usr/local/jdk1.8.0_60",JAVA_BIN="/usr/local/jdk1.8.0_60/bin"
directory=/opt/tomcat01/bin/
numprocs=1
user = root
autostart = true
autorestart=true
startsecs = 5
1.4 bash终端管理
命令行模式:
supervisorctl status
supervisorctl stop tomcat
supervisorctl start tomcat
supervisorctl restart tomcat
supervisorctl update
交互模式:
[root@ c7-141 ~]# supervisorctl
tomcat01 RUNNING pid 3223, uptime 0:01:10
supervisor> help
default commands (type help <topic>):
=====================================
add exit open reload restart start tail
avail fg pid remove shutdown status update
clear maintail quit reread signal stop version
supervisor> status
tomcat01 RUNNING pid 3247, uptime 0:00:16
supervisor> stop tomcat01
tomcat01: stopped
1.5 自带Web管理界面
用户名:user
密码:123
出于安全考虑,默认配置是没有开启web管理界面,需要修改supervisord.conf配置文件打开http访权限,将下面的配置:
;[inet_http_server] ; inet (TCP) server disabled by default
;port=127.0.0.1:9001 ; (ip_address:port specifier, *:port for all iface)
;username=user ; (default is no username (open server))
;password=123
修改后:
[inet_http_server] ; inet (TCP) server disabled by default
port=10.0.0.41:9001 ; (ip_address:port specifier, *:port for all iface)
username=user ; (default is no username (open server))
password=123
- port:绑定访问IP和端口,这里是绑定的是本地IP和9001端口
- username:登录管理后台的用户名
- password:登录管理后台的密码