zabbix4.0配置邮件报警详细过程
©著作权归作者所有:来自51CTO博客作者汤向峰的原创作品
Centos配置
1、安装mail
[root@zabbix alertscripts]# yum install mailx -y
2、编辑配置文件在最后一行添加
[root@zabbix alertscripts]# vim /etc/mail.rc
set bsdcompat
set sendcharsets=iso-8859-1,utf-8
set from=邮箱
set smtp=smtp://smtp.exmail.qq.com
set smtp-auth-user=邮箱
set smtp-auth-password=邮箱密码
set smtp-auth=login
3、测试邮件发送是否正常
[root@zabbix alertscripts]# echo "zabbix test mail" |mail -s "zabbix" 邮箱
4、编写发邮件脚本
[root@zabbix alertscripts]# cd /usr/lib/zabbix/alertscripts
[root@zabbix alertscripts]# vi mailx.sh#!/bin/bash
#send mailmessages=
echo $3 | tr '\r\n' '\n'
subject=echo $2 | tr '\r\n' '\n'
echo "${messages}" | mail -s "${subject}" $1 >>/tmp/mailx.log 2>&1
5、修改权限
touch /tmp/mailx.log
chown -R zabbix.zabbix /tmp/mailx.log
chmod +x /usr/lib/zabbix/alertscripts/mailx.sh
chown -R zabbix.zabbix /usr/lib/zabbix/
6、测试脚本发送邮件
[root@zabbix alertscripts]# echo "hello world" | mail -s "testmail" 你的邮箱
Ubuntu18.04配置
原文地址:https://blog.csdn.net/warlice/article/details/90519232
安装sendemail
sudo apt install sendemail
获取邮箱的smtp验证码
我使用的是qq邮箱。,在设置/账户页,查找到如下设置。点击开启pop3/smtp服务。这个过程需要用安保手机向服务方发送“配置邮件客户端”的短信。然后你就可以看到你的授权码了。

测试发送邮件
sendEmail -xu 11989686@qq.com -xp pkjdfgaesozomkkhde -t 11989686@qq.com -u "这是标题" -m "这是正文" -s smtp.qq.com -f 11989686@qq.com
-t 是接受邮箱地址 -f 是发送邮箱地址 -xu 是smtp邮箱用户名 -xp 是smtp的授权码 -u 是主题 -m 是邮件正文 -s 是smtp服务器域名
创建脚本目录
sudo mkdir /etc/zabbix/alert.d # zabbix 默认脚本位置,可以在/etc/zabbix/zabbix_server.conf看到 sudo vim sendemail.sh # 编写脚本 chmod 777 sendemail.sh
编写发送邮件的脚本
原文地址:https://www.cnblogs.com/yhq1314/p/9921431.html
#!/bin/bash SMTP_server='smtp.163.com' # SMTP服务器 username='*@163.com' # 用户名 password='*****' # 密码 from_email_address='*@163.com' # 发件人Email地址 to_email_address="$1" # 收件人Email地址,zabbix传入的第一个参数 message_subject_utf8="$2" # 邮件标题,zabbix传入的第二个参数 message_body_utf8="$3" # 邮件内容,zabbix传入的第三个参数 # 转换邮件标题为GB2312,解决邮件标题含有中文,收到邮件显示乱码的问题。 message_subject_gb2312=`iconv -t GB2312 -f UTF-8 << EOF $message_subject_utf8 EOF` [ $? -eq 0 ] && message_subject="$message_subject_gb2312" || message_subject="$message_subject_utf8" # 转换邮件内容为GB2312 message_body_gb2312=`iconv -t GB2312 -f UTF-8 << EOF $message_body_utf8 EOF` [ $? -eq 0 ] && message_body="$message_body_gb2312" || message_body="$message_body_utf8" # 发送邮件 sendEmail='/usr/local/bin/sendEmail' $sendEmail -s "$SMTP_server" -xu "$username" -xp "$password" -f "$from_email_address" -t "$to_email_address" -u "$message_subject" -m "$message_body" -o message-content-type=text -o message-charset=gb2312
测试该脚本
./sendemail.sh **@163.com 1111 hello
zabbix页面配置web

添加三个脚本参数
{ALERT.SENDTO}
{ALERT.SUBJECT}
{ALERT.MESSAGE}
8、用户配置


9、配置动作

故障{TRIGGER.STATUS},服务器名:{HOSTNAME1}发生: {TRIGGER.NAME}故障!
告警主机:{HOSTNAME}
告警主机IP地址:{HOST.IP}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息: {TRIGGER.NAME}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID:{EVENT.ID}


恢复{TRIGGER.STATUS}, 服务器名:{HOSTNAME1}: {TRIGGER.NAME}已恢复!
告警主机:{HOSTNAME}
告警主机IP地址:{HOST.IP}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息: {TRIGGER.NAME}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID:{EVENT.ID}
10、完成测试
测试发送邮件内容

浙公网安备 33010602011771号