进程监控supervisor

Supervisor,是一个进程控制系统,是一个C/S模式的允许用户在UNIX-LIKE 操作系统中去监控,控制进程数量的系统。Supervisor作为主进程,Supervisor下管理的时一些子进程,当某一个子进程异常退出时,Supervisor会立马对此做处理,通常会守护进程,重启该进程。

主要组件
supervisord
是服务端程序,主要功能是启动supervisord服务,启动supervisor管理的子进程,对进程进行管理的服务。
supervisorctl
是客户端程序,主要功能就是管理(启动/关闭/重启/状态等)子进程,提供shell环境进行处理。
web server
Web Server主要可以在界面上管理进程,Web Server其实是通过XML_RPC来实现的,可以向supervisor请求数据,也可以控制supervisor及子进程。配置在[inet_http_server]块里面
XML_RPC
远程调用的,上面的supervisorctl和Web Server就它实现

安装与使用(ubuntu)

1.安装

apt-get install supervisor
默认配置文件/etc/supervisor/supervisord.conf

2.目录结构

/etc/supervisor
├── conf.d
│   └── redis_monitor.conf
└── supervisord.conf

3.启动

supervisord -c /etc/supervisor/supervisord.conf

4.查看是否启动

ps aux | grep supervisord 

5.查看配置文件详情

echo_supervisord_conf > /etc/supervisor/supervisord.conf

6.配置监控redis-server

在conf.d下新建文件 redis_monitor.conf (只配置基本的信息)
[program:redis]                                                                                                     
command = redis-server
autostart=true
autorestart=true
startsecs=1

7.使用supervisorctl 管理监控进程

supervisorctl update /etc/supervisor/conf.d/redis_monitor.conf 
redis: added process group

8.手动kill redis-server

kill -9 redis-pid

/tmp/supervisor.log输出如下:
2017-09-04 06:10:16,712 INFO exited: redis (terminated by SIGKILL; not expected)
2017-09-04 06:10:17,718 INFO spawned: 'redis' with pid 7005
2017-09-04 06:10:18,779 INFO success: redis entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)

查看redis-server状态(已经被重启)
ps aux | grep redis-server
root      7005  0.0  0.7  29924  7444 ?        Sl   06:10   0:00 redis-server *:6379
root      7010  0.0  0.0   4684   848 pts/7    S+   06:11   0:00 grep --color=auto redis-server

9.supervisorctl 使用

supervisorctl | status
redis   RUNNING    pid 7214, uptime 0:00:58

10.help 命令

add clear fg open quit remove restart start stop  update 
avail exit maintail pid reload reread shutdown status  tail version

当被管理的进程更新时,需要update 对应的conf文件

11.开启web页面

[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               ; (default is no password (open server))

进程监控supervisor_第1张图片

这样就可以通过web页面管理被监控的程序。

你可能感兴趣的:(服务器,服务监控)