系统: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
[ KaTeX parse error: Expected 'EOF', got '&' at position 11: ? -eq 0 ] &̲& message_subje…message_subject_gb2312" || message_subject="$message_subject_utf8"
转换邮件内容为GB2312
message_body_gb2312=iconv -t GB2312 -f UTF-8 << EOF $message_body_utf8 EOF
[ KaTeX parse error: Expected 'EOF', got '&' at position 11: ? -eq 0 ] &̲& message_body=…message_body_gb2312" || message_body="$message_body_utf8"
发送邮件
sendEmail=’/usr/local/bin/sendEmail’
s e n d E m a i l − s " sendEmail -s "sendEmail−s"SMTP_server" -xu “u s e r n a m e " − x p " username" -xp "username"−xp"password” -f “f r o m e m a i l a d d r e s s " − t " from_email_address" -t "from
e
a
ddress"−t"to_email_address” -u “m e s s a g e s u b j e c t " − m " message_subject" -m "message
s
ubject"−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}
测试,监控一个服务把服务停掉,看看是否能够收到邮件
在报表菜单的动作日志下面可以查看邮件发送的状态