zabbix邮件报警

119 阅读1分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第1天,点击查看活动详情

系统:centos7.2 环境:搭建完毕的zabbix-server,并且服务器有外网 一、将下面的两个文件上传到你的服务器上: 在这里插入图片描述 在这里插入图片描述 1.解压sendmail程序的压缩包,并复制到/usr/local/bin

tar zxf sendEmail-v1.56.tar.gz

cp sendEmail-v1.56/sendEmail /usr/local/bin/

2.给sendEmail.sh增加可执行权限

chmod +x sendEmail.sh

cp sendEmail.sh /usr/lib/zabbix/alertscripts/

3.编辑脚本,将绑定的邮箱地址和密码写上

vi /usr/lib/zabbix/alertscripts/sendEmail.sh

在这里插入图片描述 #!/bin/bash SMTP_server='smtp.163.com' # SMTP服务器 username='18xxx6623@163.com' # 用户名 password='xxxxx' # 密码 from_email_address='1xxx6623@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' sendEmails"sendEmail -s "SMTP_server" -xu "username"xp"username" -xp "password" -f "fromemailaddress"t"from_email_address" -t "to_email_address" -u "messagesubject"m"message_subject" -m "message_body" -o tls=no message-content-type=text -o message-charset=gb2312 echo "date +"%F %T" send to $to_email_address" >> /tmp/s 4.测试脚本是否可用

cd /usr/lib/zabbix/alertscripts/

./sendEmail.sh 接收邮件的邮箱 标题 内容

./sendEmail.sh 724058013@qq.com hahaha nishishui

去邮箱查看是否收到了邮件 在这里插入图片描述 5.创建报警媒介 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 {TRIGGER.STATUS}:{TRIGGER.NAME}

告警主机:{HOSTNAME} 告警时间:{EVENT.DATE}{EVENT.TIME} 告警信息:{TRIGGER.NAME} 告警项目:{TRIGGER:KEY1} 问题详情:{ITEM.NAME}:{ITEM.VALUE} 当前状态:{TRIGGRT.STATUS}:{ITEM.VALUE1} 在这里插入图片描述 在这里插入图片描述 测试,监控一个服务把服务停掉,看看是否能够收到邮件 在报表菜单的动作日志下面可以查看邮件发送的状态 在这里插入图片描述