supervisor进程、服务超级监控工具配置-折腾笔记

是否经常会遇到服务器的某个进程挂了而导致停止服务?是否遇到自己写的监控工具工作也并非稳定?

好了,可以试试supervisor这款由python编写的监控神器。

此款神器可以配置的服务、进程进行监控,当被监控的进程挂掉之后,supervisor可以迅速将进程拉起,从而使得服务可以继续提供。而且,将supervisor设置为开机启动之后,supervisor也可以在开始后,自动启动配置的监控项。

环境:

Centos7

一、安装supervisor

由于supervisor使用Python编写,所以需要先安装python环境,方法不再赘述。

1、通过源安装

yum install epel-release -y
yum install supervisor

2、通过python包管理安装

easy_install supervisor

二、配置supervisor

1、生成配置文件

$ echo_supervisord_conf > /etc/supervisord.conf

2、编译配置文件

vim /etc/supervisord.conf

修改末尾如下:

[include]
files = /etc/supervisor/conf.d/*.ini

supervisor会扫描/etc/supervisor/conf.d/目录下的*.ini配置文件

3、添加被监测项

[program:druid_historical]
command=java -V
directory=/
user=root
autostart=true # 在 supervisord 启动的时候也自动启动
autorestart=true  # 启动 5 秒后没有异常退出,就当作已经正常启动了
stopsignal=KILL
killasgroup=true
stopasgroup=true
# logfile=/var/log/supervisor/druid.log
# log_stderr=true
# redirect_stderr=true
# stdout_logfile=/var/log/supervisor/druid.log
# stdout_logfile_maxbytes=5MB
# stdout_logfile_backups=3

program:后为被检测项的名称

command后为被监控项的启动命令

4、应用配置文件

supervisord -c /etc/supervisord.conf
systemctl enable supervisord

5、启动supervisor

supervisorctl restart all

6、更新supervisor被监控项

supervisorctl update

7、更多命令,请看supervisor官方文档

$supervisorctl shutdown
$supervisorctl reload

三、问题

1、unix:///tmp/supervisor.sock no such file问题

执行supervisorctl时提示unix:///tmp/supervisor.sock no such file错误,后经排查后发现,是supervisor程序为执行。

执行,下面命令解决:

supervisord -c /etc/supervisord.conf
systemctl enable supervisord
systemctl start supervisord

2、莫名奇妙无法运行问题

请配置日志,从日志文件找出原因。

3、各种命令找不到问题

建议使用find命令,搜索该命令完整路径。