返回列表 发帖

CentOS8_通过脚本发送Zabbix告警邮件(使用126邮箱的25端口)

笺注:
被监控主机是在 Zabbix使用Agent监控CentOS6/Redhat6 的基础上进行的。

Zabbix服务器的安装可参考:CentOS8编译安装Zabbix4.4.5



先在Zabbix服务器上配置邮件功能:(无需安装Postfix、Sendmail)

先检测发送邮件的软件包mailx安装了没有:
[root@centos8 ~]# rpm -qa mailx
[root@centos8 ~]#

安装mailx:
[root@centos8 ~]# dnf -y install mailx

确认mailx安装成功:
[root@centos8 ~]# rpm -qa mailx
mailx-12.5-29.el8.x86_64


修改mailx的配置文件:
cat >/etc/mail.rc<< eof
set from=j13680432782@126.com
set smtp=smtp.126.com
set smtp-auth-user=j13680432782
set smtp-auth-password=用户密码
set smtp-auth=login
eof


发送测试邮件:
[root@centos8 ~]# echo "Hello." | mail -s "Title" 22701xxx@qq.com

正常的话,QQ邮箱可以收到测试邮件:
图片2.png
2021-6-7 13:08




######

创建Zabbix的告警邮件脚本:
[root@centos8 ~]# cd /usr/local/zabbix/share/zabbix/alertscripts
[root@centos8 alertscripts]# ls
[root@centos8 alertscripts]#
[root@centos8 alertscripts]# vi sendmail.sh
#!/bin/bash
messages=`echo $3 | tr '\r\n' '\n'`
subject=`echo $2 | tr '\r\n' '\n'`
echo "${messages}" | mail -s "${subject}" $1 >> /tmp/sendmail.log 2>&1


完成的效果如下图:
图片3.png
2021-6-7 13:09


设置脚本的权限:
[root@centos8 alertscripts]# chmod a+x sendmail.sh
[root@centos8 alertscripts]# chown zabbix.zabbix sendmail.sh



######

继续通过浏览器配置Zabbix的邮件功能:

1)管理》报警媒介类型》Email:

类型选择“脚本”,

脚本名称:
sendmail.sh

脚本参数:
{ALERT.SENDTO}
{ALERT.SUBJECT}
{ALERT.MESSAGE}


如下图:
图片4.png
2021-6-7 13:09



更新后,可以点击“Email”右边的“测试”:
图片5.png
2021-6-7 13:10


发送Zabbix的测试邮件:
图片6.png
2021-6-7 13:10

注释:要指定收件人邮箱。

Zabbix的测试邮件发送成功:
图片7.png
2021-6-7 13:10


正常的话,QQ邮箱可以收到Zabbix的测试邮件:
图片8.png
2021-6-7 13:11




2)配置用户的收件邮箱:
管理》用户》Admin:(使用用户Admin进行接收邮件)

添加报警媒介:
图片9.png
2021-6-7 13:11


图片10.png
2021-6-7 13:11


图片11.png
2021-6-7 13:12

注释:添加了两个收件人邮箱。

点击“更新”:
图片12.png
2021-6-7 13:12




3)配置触发邮件的条件:
配置》动作》“Report problems to Zabbix administrators”:
图片13.png
2021-6-7 13:12



自定义“动作”:(这里选择触发器
图片14.png
2021-6-7 13:13


图片15.png
2021-6-7 13:13

注释:可以选择指定主机的触发器,比如“c6: System time is out of sync (diff with Zabbix server > 60s)


选择好指定主机的触发器后,点击“添加”:
图片16.png
2021-6-7 13:14


点击勾选“已启用”:
图片17.png
2021-6-7 13:14



###
自定义“操作”:
图片18.png
2021-6-7 13:14

注释:
不勾选“暂停操作以制止问题”;
默认操作步骤持续时间 60s
其他地方可以保持默认,点击“更新”;


触发邮件的条件更新成功:
图片19.png
2021-6-7 13:15


图片20.png
2021-6-7 13:15



备注:
实验中,主机c6的触发器“System time is out of sync (diff with Zabbix server > {$SYSTEM.FUZZYTIME.MAX}s)”已启用,如下图:
图片21.png
2021-6-7 13:15


图片22.png
2021-6-7 13:16



当主机c6的系统时间与Zabbix服务器的系统时间相差大于60秒时,仪表板的告警效果如下:(显示对应触发器的名称)
System time is out of sync (diff with Zabbix server > 60s)
图片23.png
2021-6-7 13:16


图片24.png
2021-6-7 13:17



指定的QQ邮箱会收到类似的告警邮件:
图片25.png
2021-6-7 13:17


指定的新浪邮箱也会收到类似的告警邮件:
图片26.png
2021-6-7 13:17



被监控主机进行时间同步:(这里假设被监控主机的系统时间不正确)
[root@zabbix_client ~]# ntpdate time.windows.com
7 Jun 08:42:26 ntpdate[112992]: step time server 20.189.79.72 offset 32077327.889010 sec


指定的QQ邮箱会收到类似的告警恢复邮件:
图片27.png
2021-6-7 13:18


指定的新浪邮箱也会收到类似的告警恢复邮件:
图片28.png
2021-6-7 13:18






############

再添加一个触发邮件的条件:

配置》动作》“Report problems to Zabbix administrators”:
自定义“动作”:(这里选择触发器
图片29.png
2021-6-7 13:19


图片30.png
2021-6-7 13:19

注释:
这里选择的触发器为 “c6: HTTP service is down on c6
该触发器要处于“已启用”状态;


选择好指定主机的触发器后,点击“添加”:
图片31.png
2021-6-7 13:20


图片32.png
2021-6-7 13:20

注释:
计算方式选为
其他地方保持默认,点击“更新”:


触发邮件的条件更新成功:
图片33.png
2021-6-7 13:21




######

当主机c6的HTTP服务Down了,会触发模板Template App HTTP Service自带的触发器“HTTP service is down on {HOST.NAME}”,指定的QQ邮箱会收到类似的告警邮件:(实验中,主机c6的HTTP服务使用TCP 80端口)
图片34.png
2021-6-7 13:21

备注:
此次的告警邮件只会发送一封,告警长时间不恢复,也不会重复发送的;
指定的新浪邮箱也会收到类似的告警邮件:


######

当主机c6的HTTP服务从Down到Up,其触发器“HTTP service is down on {HOST.NAME}”会自动消除警告,指定的QQ邮箱会收到类似的告警恢复邮件:
图片35.png
2021-6-7 13:22

备注:
指定的新浪邮箱也会收到类似的告警恢复邮件:





############

同理,再添加两个触发邮件的条件:
配置》动作》“Report problems to Zabbix administrators”:
自定义“动作”:(这里选择触发器
图片36.png
2021-6-7 13:23

注释:
c6: Zabbix agent is not available (for 3m) #监控主机c6是否关机了
c6: c6 has been restarted (uptime < 10m)  #监控主机c6是否重启过
这些触发器要处于“已启用”状态;


触发邮件的条件更新成功:
图片37.png
2021-6-7 13:24



######

当主机c6关机了,会触发其触发器“Zabbix agent is not available (for {$AGENT.TIMEOUT})”,收件人会收到类似的告警邮件:
图片38.png
2021-6-7 13:24


因为启用了主机c6的触发器“HTTP service is down on {HOST.NAME}”,所以收件人还会收到TCP端口的告警邮件:
图片39.png
2021-6-7 13:24



######

当主机c6又开机了,收件人会收到类似的告警恢复邮件:
图片40.png
2021-6-7 13:25


收件人还会收到TCP端口的告警恢复邮件:(假如主机c6的HTTP服务会随系统的启动而自动启动)
图片41.png
2021-6-7 13:25



######

当主机c6重启后,会触发其触发器“{HOST.NAME} has been restarted (uptime < 10m)”,收件人会收到类似的告警邮件:
图片42.png
2021-6-7 13:26


大概10分钟后,收件人会收到类似的告警恢复邮件:
图片43.png
2021-6-7 13:26



笺注:
126邮箱发送这种邮件后,在“已发送”里是有记录的;






相关文章:
CentOS8_通过脚本发送Zabbix告警邮件(使用新浪邮箱的25端口)
Python3使用126邮箱的25端口发送邮件

Zabbix5.0.12_通过脚本发送Zabbix告警邮件(使用126邮箱的465端口)

返回列表