标签:display 发送邮件 etc 否支持 mail image span smtp 参考
由于公司需求,要有一个监控,并且可以钉钉、邮件报警,我就做了。虽然,我是tester,因为公司暂时没运维,我兼职了。
前提条件:
* 已经装好naigos,但没配置报警
* 需要linux下有python环境,并且安装requests第三方库
首先,我先感概一下这nagios的配置真有点麻烦,而且没有说明文档参考,靠自己慢慢摸索,当时是搞了很久。不过,挺强大的,这个工具,什么命令都可以自己配置。
1、在commands.cfg文件,配置一下报警命令
python /usr/local/nagios/etc/objects/police_host.py "$NOTIFICATIONTYPE$" "$HOSTADDRESS$" "$HOSTNAME$" "$SERVICEDISPLAYNAME$" "$SERVICEDESC$" "$LONGDATETIME$" "$SERVICEOUTPUT$"
2、把dindin-bj-host这个命令加到联系人和联系人组中去(即contacts.cfg和contactgroups.cfg)
修改contacts.cfg
修改contactgroups.cfg
3、然后传入报警参数(nagios可用宏),自定义报警函数再调用即可,在police-service.py文件中
自定义报警函数:
dindin-对应钉钉
SendTextMailParameterization-对应邮件报警,后面我会补充一下为什么不能sendEmail(一个邮件发送程序)发送邮件,而是自己写。
3.1 传入报警参数
3.2 自定义报警函数-钉钉报警
3.3 自定义报警函数-邮件报警
3.4 导入基础包,代码部分到这里基本完成了
4、开始执行代码,先测试一下 python 目录/police_host.py 11 22 33 44 55 66 77
执行代码
钉钉报警内容
邮件报警内容
5、因为,我是在window上写代码的,而监控主机在linux。还的迁移一下到服务器,并测试一下。同样的测试命令执行,结果为下图1,不要怀疑。这是对的。因为那个时间nagios并不会报警,nagios报警是有个时间段,每隔多少分钟
才会报警,所以,那个时间的报警参数(nagios可用宏)就不会有。那么就等待15分钟把(我设置的是15分钟发送一次报警信息),就会有结果了,参考下图2和3
补充1
钉钉报警webhook在群机器人管理那添加,然后点击设置就有了
补充2
为什么不用sendEmail发送邮件呢?
其实,我刚开始装nagios,也是百度,百度说邮件报警可以用这个。但我发现,阿里云服务器禁用了25端口,连接时总会提示超时。然后用我994端口,也是提示超时。所以,就得找原因。一般连接超时,都是出外网有问题。所有就ping smtphm.qiye.163.com,可以通。再telnet一下端口,发现只有994端口可用,25端口被阿里云禁用了。根据我几个月写小代码的经验,这个994是加密端口,必须使用ssl。所以,我就sendEmail中搜索一下ssl,看一下是否支持,然后发现可用-0 tls=yes,但最终还是不行,说当前系统不支持。所以,我最终自己写个邮件程序,来发送。
Sendmail发送邮件提示超时
sendEmail发送加密提示不支持,需要安装xxx
标签:display 发送邮件 etc 否支持 mail image span smtp 参考
原文地址:https://www.cnblogs.com/xuxiongbing/p/9362161.html