需求:监听服务器状态,如关闭进行告警
解决:实现思路使用Monit对服务进行监控并配置邮箱进行汇报
安装Monit
yum -y install epel-release
yum -y install monit
修改配置文件
默认在/etc/monitrc路径下
配置告警发送邮箱(默认端口25)
set mailserver smtp.163.com
刷新monit配置
monit reload
原本以为配上用户名及密码就可以成功了,结果查看一直没收到邮件查看日志提示才发现一直在报错
[2022-02-13T21:40:16+0800] error : Cannot connect to [smtp.163.com]:25 -- Connection timed out
[2022-02-13T21:40:16+0800] error : Cannot open a connection to the mailserver smtp.163.com:25 -- Operation now in progress
[2022-02-13T21:40:16+0800] error : Mail: Delivery failed -- no mail server is available
好像是因为使用了阿里云服务器被禁用了25端口的原因?总之改为使用SSL协议进行连接
ssl协议端口号465,结合Monit手册中关于mailserver的配置,之前没有加上using SSL一直提示Resource temporarily unavailable
set mailserver smtp.163.com port 465 username "你的username" password "你的授权码" using SSL{verify:enable}
授权码的获取在网易邮箱开启POP3/SMTP服务时会给出。 另外关于mail-format及收件箱部分配置直接见手册即可。
以nginx服务为例,配置如下:
check process nginx with pidfile /usr/local/nginx/logs/nginx.pid
start program = "/usr/bin/systemctl start nginx"
stop program = "/usr/bin/systemctl stop nginx"
if failed host 127.0.0.1 port 80 protocol http then alert
刷新配置文件,顺利收到ALERT