Zabbix邮件报警
目录
安装mailx
#现在是12.5 应该不用操作了 我试一下先 # mailx是UNIX系统上用来处理邮件的工具,使用它可以发送,读取邮件 yum -y remove mailx yum -y install patch dos2unix wget -c http://nchc.dl.sourceforge.net/project/heirloom/heirloom-mailx/12.4/mailx-12.4.tar.bz2 tar xvf mailx-12.4.tar.bz2 cd mailx-12.4 wget http://www.linuxfromscratch.org/patches/blfs/7.6/mailx-12.4-openssl_1.0.0_build_fix-1.patch patch -Np1 -i mailx-12.4-openssl_1.0.0_build_fix-1.patch make -j4 make install UCBINSTALL=/usr/bin/install ln -s /usr/local/bin/mailx /bin/mail #创建 mailx到mail的软连接 ln -s /etc/nail.rc /etc/mail.rc #创建mailx配置文件软连接
配置
修改配置文件
vi /etc/mail.rc echo '# Only include selected header fields when forwarding messages. fwdretain subject date from to set [email protected] smtp=mail.cc set smtp-auth-user=zabbix smtp-auth-password=zabbix set smtp-auth=login ' >>/etc/mail.rc #by evan2019 set [email protected] smtp=smtp.126.com set smtp-auth-user=linux smtp-auth-password=1234 set smtp-auth=login
发送示列
# body |mail -s "title" echo " test mail" |mail -s "mylove201910" [email protected]
修改zabbix_server.conf指定脚本路径
#AlertScriptsPath=/etc/zabbix/zabbix_server.conf.d/alertscripts/ AlertScriptsPath=/data/apps/zabbix/zabbix-server/share/zabbix/alertscripts/ service zabbix_server restart mkdir -p /etc/zabbix/zabbix_server.conf.d/alertscripts/ #[root@test ~]# cat /etc/zabbix/zabbix_server.conf.d/alertscripts/sendmail.sh
配置脚本
vi /etc/zabbix/zabbix_server.conf.d/alertscripts/sendmail.sh #!/bin/sh #export.UTF-8 export LANG=zh_CN.UTF-8 #(解决标题乱码) FILE=/tmp/mailtmp.txt echo "$3" >$FILE dos2unix -k $FILE #(解决内容乱码) /bin/mail -s "$2" $1 touch /tmp/mailtmp.txt #注意:给mailtmp.txt权限,否则收件内容为空,因为zabbix没有权限写入。 chown zabbix:zabbix /tmp/mailtmp.txt 给脚本设置zabbix运行权限 chown zabbix:zabbix /etc/zabbix/zabbix_server.conf.d/alertscripts/sendmail.sh chmod +x /etc/zabbix/zabbix_server.conf.d/alertscripts/sendmail.sh 测试发送最好使用zabbix用户测试,因为使用root会改变mailtmp.txt文件权限,导致发送邮件内容还是空或是测试写入的内容。 ./sendmail.sh emailadd "标题" "内容" /etc/zabbix/zabbix_server.conf.d/alertscripts/sendmail.sh [email protected] "title " "love evan" trouble #这样会少个$3 cat >> /etc/zabbix/zabbix_server.conf.d/alertscripts/sendmail.sh << EOF #!/bin/sh #export.UTF-8 export LANG=zh_CN.UTF-8 #(解决标题乱码) FILE=/tmp/mailtmp.txt echo "$3" >$FILE dos2unix -k $FILE #(解决内容乱码) /bin/mail -s "$2" $1 < $FILE EOF 会不会影响 su -l zabbix -c "/usr/lib/zabbix/alertscripts/sendmail.sh" [email protected] "title" "love evan " This account is currently not available.
zabbix web 添加脚本
1
管理-->报警媒介类型 --> creat --> ##内容 名称 sendmail 类型 脚本 脚本参数 {ALERT.SENDTO} {ALERT.SUBJECT} {ALERT.MESSAGE}
2修改用户警告类型
管理--> 用户-- 选择你的用户 然后 --> 报警媒介 -->添加 --> 类型 sendmail 收件人 你要填写的email
3
配置-->动作--> create -->动作 名称 actionemail 条件 A 触发器示警度 大于等于 警告 默认接收人 故障{TRIGGER.STATUS},服务器:{HOSTNAME1}发生: {TRIGGER.NAME}故障! 默认信息 告警主机:{HOSTNAME1} 告警时间:{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}已恢复! 告警主机:{HOSTNAME1} 告警时间:{EVENT.DATE} {EVENT.TIME} 告警等级:{TRIGGER.SEVERITY} 告警信息: {TRIGGER.NAME} 告警项目:{TRIGGER.KEY1} 问题详情:{ITEM.NAME}:{ITEM.VALUE} 当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1} 事件ID:{EVENT.ID}
4
配置-->动作--> create -->操作
操作类型 发送到用户 仅送到 默认信息等等
记得要 两次更新
trouble
no media defined user
查看 报表--动作日志时 失败如下
填写页面的 smtp.126.com 不要写成smpt.126.com
see also
分布式监控系统Zabbix-3.0.3-完整安装记录(5)-邮件报警部署
http://www.cnblogs.com/hanyifeng/p/5366855.html
添加自定义监控项目,配置邮件告警,测试告警,不发邮件的问题处理