返回列表 发帖

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

笺注:
这是在 CentOS8编译安装Zabbix4.4.5 的基础上进行的。

邮件服务器的安装可以参考: CentOS8_安装与配置邮件服务器(Postfix+Dovecot)



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

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

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

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


查看mailx的相关文件、目录:
[root@centos8 ~]# rpm -ql mailx
/bin/mail
/bin/mailx
/etc/mail.rc
/usr/bin/Mail
/usr/bin/nail
/usr/lib/.build-id
/usr/lib/.build-id/e0
/usr/lib/.build-id/e0/16cad374c96ed5dbda7f751ab0cc153815c49f
/usr/share/doc/mailx
/usr/share/doc/mailx/AUTHORS
/usr/share/doc/mailx/COPYING
/usr/share/doc/mailx/README
/usr/share/man/man1/Mail.1.gz
/usr/share/man/man1/mail.1.gz
/usr/share/man/man1/mailx.1.gz
/usr/share/man/man1/nail.1.gz


修改mailx的配置文件:(邮件服务器的IP地址为 192.168.168.155
cat >/etc/mail.rc<< eof
set from=zhuohua@zhuohua.store
set smtp=192.168.168.155
set smtp-auth-user=zhuohua
set smtp-auth-password=111
set smtp-auth=login
eof

发送测试邮件:
[root@centos8 ~]# echo "Hello." | mail -s "Title" happy@zhuohua.store

正常的话,邮箱happy@zhuohua.store是可以收到测试邮件的了:
图片2.png
2021-6-5 11:55




######

创建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-5 11:56


设置脚本的权限:
[root@centos8 alertscripts]# chmod 755 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-5 11:57



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


发送Zabbix的测试邮件:
图片6.png
2021-6-5 11:58

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

Zabbix的测试邮件发送成功:
图片7.png
2021-6-5 11:58


正常的话,邮箱happy@zhuohua.store可以收到Zabbix的测试邮件:
图片8.png
2021-6-5 11:58




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

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


图片10.png
2021-6-5 11:59

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

点击“更新”:
图片11.png
2021-6-5 11:59




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



自定义“动作”:
图片13.png
2021-6-5 12:00

注释:
使用“触发器名称”时 ,要输入指定触发器的名称中包含的关键字,关键字区分英文字母大小写;

图片14.png
2021-6-5 12:00

注释:
点击勾选“已启用”;


###
自定义“操作”:(默认标题、消息内容会出现在告警邮件中)
图片17.png
2021-6-5 12:02

注释:
不勾选“暂停操作以制止问题”;
默认操作步骤持续时间 60s

“操作”的消息内容的默认英文模板:
Problem started at {EVENT.TIME} on {EVENT.DATE}
Problem name: {EVENT.NAME}
Host: {HOST.NAME}
Severity: {EVENT.SEVERITY}

Original problem ID: {EVENT.ID}
{TRIGGER.URL}



###
“恢复操作”:(默认标题、消息内容会出现在告警恢复邮件中)
图片18.png
2021-6-5 12:03


“恢复操作”的消息内容的默认英文模板:
Problem has been resolved at {EVENT.RECOVERY.TIME} on {EVENT.RECOVERY.DATE}
Problem name: {EVENT.NAME}
Host: {HOST.NAME}
Severity: {EVENT.SEVERITY}

Original problem ID: {EVENT.ID}
{TRIGGER.URL}



###
“更新操作”:
图片19.png
2021-6-5 12:03


“更新操作”的消息内容的默认英文模板:
{USER.FULLNAME} {EVENT.UPDATE.ACTION} problem at {EVENT.UPDATE.DATE} {EVENT.UPDATE.TIME}.
{EVENT.UPDATE.MESSAGE}

Current problem status is {EVENT.STATUS}, acknowledged: {EVENT.ACK.STATUS}.



触发邮件的条件更新成功:
图片20.png
2021-6-5 12:04


图片21.png
2021-6-5 12:05



备注:
实验中,主机Zabbix server的触发器“vsftpd is down on {HOST.IP}”已启用,如下图:
图片15.png
2021-6-5 12:01


图片16.png
2021-6-5 12:01




######

测试:
停止vsftpd服务:
[root@centos8 ~]# systemctl stop vsftpd


在Zabbix服务器上使用命令zabbix_get检测本机(127.0.0.1)的监控项“check_process_vsftpd”的键值:(这种方法可以不用管vsftpd服务的端口号)
[root@centos8 ~]# /usr/local/zabbix/bin/zabbix_get -s 127.0.0.1 -k proc.num[vsftpd]
0


当主机Zabbix server的FTP(vsftpd)服务Down了,会触发其触发器“vsftpd is down on {HOST.IP}”,收件人会收到如下类似的告警邮件:
图片22.png
2021-6-5 12:05

备注:此次的告警邮件只会发送一封,告警长时间不恢复,也不会重复发送的;



###

启动vsftpd服务:
[root@centos8 ~]# systemctl start vsftpd


再次,在Zabbix服务器上使用命令zabbix_get检测本机(127.0.0.1)的监控项“check_process_vsftpd”的键值:(这种方法可以不用管vsftpd服务的端口号)
[root@centos8 ~]# /usr/local/zabbix/bin/zabbix_get -s 127.0.0.1 -k "proc.num[vsftpd]"
1


当主机Zabbix server的FTP(vsftpd)服务从Down到Up,其触发器“vsftpd is down on {HOST.IP}”会自动消除警告,收件人会收到如下类似的告警恢复邮件:
图片23.png
2021-6-5 12:05




######

查看Zabbix发送过的邮件:

报表》动作日志:
图片24.png
2021-6-5 12:06


图片25.png
2021-6-5 12:06


图片26.png
2021-6-5 12:06



备注:
实验中,zhuohua@zhuohua.store发送这种邮件后,在“已发送”里是没有记录的。






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

返回列表