携手创作,共同成长!这是我参与「掘金日新计划 · 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'
SMTP_server" -xu "password" -f "to_email_address" -u "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}
测试,监控一个服务把服务停掉,看看是否能够收到邮件
在报表菜单的动作日志下面可以查看邮件发送的状态