supervisor守护进程并配置邮件报警

supervisor守护进程并配置邮件报警

      国庆放假利用空闲时间,研究supervisor监控进程异常情况进行邮件告警,其实在国庆前就有这个想法了,终于在国庆时间捣鼓出来,supervisor有一个插件,叫做superlance刚好可以满足我的需求,在这里跟大家分享这个过程。

      一、安装软件扩展

yum install -y sendmail mailx && pip3 install superlance

      二、配置邮件基础信息

      我是直接用163邮箱作为发送邮箱,没有用过QQ,大家有兴趣可以自己尝试,我们先输入以下命令进行邮件配置

vim /etc/mail.rc

 然后再最末尾追加以下配置并保存

# 发件人邮箱
set from=xxx@163.com
# smtp服务
set smtp=smtps://smtp.163.com:465  
# 用户名
set smtp-auth-user=xxx@163.com
# 密码
set smtp-auth-password=163邮箱授权码   
set ssl-verify=ignore

我们使用465端口进行邮件发送,因为25端口可能会被封禁,导致邮件发不出去。记得到网易邮箱的邮箱后台配置开启IMAP/SMTP服务、POP3/SMTP服务。

      配置完之后,我们看看能否发出去邮件,输入以下命令行

echo 'this is test'| /usr/bin/mail -s 'test' xxx@qq.com

如果我们指定的QQ邮箱能收到就说明我们配置成功了。

      三、编写监听配置文件

      我的Supervisord配置文件是存放在/etc/supervisord.conf.d,所以我们直接在该目录下创建一个新的配置文件,取名作myListener.conf,配置内容如下

[eventlistener:projectListener]
command = crashmail -a -s "/usr/bin/mail -s 'Go项目通知' xxx@qq.com" -m 'Supervisor管家'
autostart = true
autorestart = true
user = root
events = PROCESS_STATE,PROCESS_STATE_STARTING,PROCESS_STATE_RUNNING,PROCESS_STATE_RUNNING,PROCESS_STATE_BACKOFF,PROCESS_STATE_STOPPING,PROCESS_STATE_EXITED,PROCESS_STATE_STOPPED,PROCESS_STATE_FATAL,PROCESS_STATE_UNKNOWN

保存完成后,我们输入以下命令更新配置

supervisorctl update

      四、检验效果

      完成以上操作后,我们可以通过以下命令查看我们的进程运行情况

supervisorctl status

1.png

我们直接kill掉一个进程,因为我这里加了自动重启机制,所以我们kill掉后他会自己重启,所以不用担心挂了。

我们输入以下命令行

kill -9 16819

2.png

进程自动重启,同时我这边也收到邮件

3.png

      这样我们就可以成功实现对项目异常情况进行通知的功能,针对superlance内容,大家可以参考官方的说明文档,在这里就不多说。

0条评论

发表评论