运维管理 ·

Linux 监控进程 Supervisor 管理安装配置及使用

Supervisor(http://supervisord.org/)是用Python开发的一个client/server服务,是Linux/Unix系统下的一个进程管理工具,不支持Windows系统。它可以很方便地监听、启动、停止、重启一个或多个进程。当一个进程意外终止时,supervisort监听到进程死亡,会自动将它重新启动,很方便地做到用户进程守护的功能,不需要自己再写shell脚本来控制。

由于Supervisor是用Python开发的程序,在安装前,请确保系统已安装Python,并确保python版本至少为2.4。下面在CentOS7操作系统和Python2.7版本环境下,介绍Supervisor的安装与配置步聚

默认配置文件:/etc/supervisord.conf

默认进程管理配置文件目录:/etc/supervisord.d/

默认日志文件:/data/logs/supervisor/supervisord.log,可以查看进程的启动信息

01、安装 supervisor

02.配置文件 supervisor.conf 参数说明

unixhttpserver配置块

在该配置块的参数项表示的是一个监听在socket上的HTTP server,如果[unixhttpserver]块不在配置文件中或被注释,则不会启动基于socket的HTTP server。该块的参数介绍如下

inethttpserver配置块

在该配置块的参数项表示的是一个监听在TCP上的HTTP server,如果[inethttpserver]块不在配置文件中或被注释,则不会启动基于TCP的HTTP server。该块的参数介绍如下:

比如:

表示监听在9001端口,需要使用用户名+密码的方式访问,访问地址是:http//127.0.0.1:9001。

supervisord配置块

该配置块的参数项是关于supervisord进程的全局配置项。该块的参数介绍如下:

该块的参数通常不需要改动就可以使用,当然也可以按需修改。

program配置块

该块就是我们要监控的程序的配置项。该配置块的头部是有固定格式的,一个关键字program,后面跟着一个冒号,接下来才是程序名。例如:[program:foo],foo就是程序名,在使用supervisorctl来操作程序的时候,就是以foo来标明的。该块的参数介绍如下:

比如下面这个选项块就表示监控一个名叫test_http的程序

03.配置管理进程

进程管理配置参数,不建议全都写在supervisord.conf文件中,建议每个进程写一个配置文件,并放在include配置块中files指定的目录下,通过include包含进supervisord.conf文件中。

A. 创建$HOME/Python/etc/supervisord.d目录,用于存放“进程管理配置文件”。

B. 修改$HOME/Python/etc/supervisord.conf中的include参数,将$HOME/Python/etc/supervisord.d目录添加到include中。

C. 安装完成后需要创建配置文件,进入 /etc/supervisor/conf.d 目录后,新建一个配置文件

配置 ssh 进程:

配置 Tomcat 进程:

配置 redis 进程:

配置 php 进程:

配置 openresty 进程:

配置 logrotate 日志分割进程:

配置文件 netcore.conf 内容如下

04.新建日志存放目录

05.启动 Supervisor 服务

06.开机启动 Supervisor 服务

配置systemctl服务

进入/lib/systemd/system目录,并创建supervisor.service文件,该文件内容如下所示。

设置开机启动

修改文件权限为766

07.配置service类型服务

创建/etc/rc.d/init.d/supervisor文件,该文件内容如下所示:

修改文件权限为755,并设置开机启动:

注意:修改脚本中supervisor配置文件路径为你的supervisor的配置文件路径

其它Linux发行版开机启动脚本:https://github.com/Supervisor/initscripts

注意:Supervisor只能管理非daemon的进程,不能管理守护进程。否则,会提示Exited too quickly (process log may have details)异常。例子中的Tomcat默认是以守护进程启动的,所以我们改成了catalina.sh run,以前台进程的方式运行。

08.使用supervisor 管理

supervisord启动成功后,通过supervisorctl客户端来管理用户进程:启动、停止、重启。运行supervisorctl命令,会进入supervisor客户端的交互终端,并会列出当前所管理的所有进程。

交互终端

bash终端

注意:如果原来的程序启动时需要带上参数,那通过supervisorctl start时应该先写一个shell脚本,然后supervisorctl运行该脚本即可。

查看一下是否监听

Web管理界面

表示监听在9001端口,需要使用用户名+密码的方式访问,访问地址是:http//127.0.0.1:9001

 

 

 

 

 

评论已关闭