Zabbix邮件报警

来自linux中国网wiki
跳到导航 跳到搜索

安装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}

Gbb.png

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

查看 报表--动作日志时 失败如下

Emailnotuser.png


填写页面的 smtp.126.com 不要写成smpt.126.com

see also

分布式监控系统Zabbix-3.0.3-完整安装记录(5)-邮件报警部署


http://www.cnblogs.com/hanyifeng/p/5366855.html

zabbix3.2.0触发邮件告警流程

zabbix不发送邮件

添加自定义监控项目,配置邮件告警,测试告警,不发邮件的问题处理

添加自定义监控项目 配置邮件告警 测试告警 不发邮件的问题处理

自动化监控Zabbix之邮件报警

zabbix email报警

使用mailx发送邮件