一、安装sendEmail
我安装的是zabbix2.4.8,汉化之后的。
下载:
将
sendEmail-v1.56.tar.gz解压,解压后拷贝sendEmail可执行文件到/usr/loca/bin
二、配置zabbix server
1)在zabbix_server.conf最后一行添加:
AlertScriptsPath=/srv/zabbix/alertscripts #告警脚本存放路径
2)编辑脚本mail.sh
-
#!/bin/bash
-
# Description: zabbix邮件告警脚本
-
# Notes: 使用sendEmail
-
#
-
-
# 脚本的日志文件
-
LOGFILE="/var/log/zabbix/Email.log"
-
:>"$LOGFILE"
-
exec 1>"$LOGFILE"
-
exec 2>&1
-
-
SMTP_server='smtp.qiye.163.com' # SMTP服务器,变量值需要自行修改
-
username='XXX@XXX.com' # 用户名,变量值需要自行修改
-
password='XXXXXX' # 密码,变量值需要自行修改
-
from_email_address='XXX@XXX.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'
-
set -x
-
$sendEmail -s "$SMTP_server" -xu "$username" -xp "$password" -f "$from_email_address" -t "$to_email_address" -u "$message_subject" -m "$message_body" -o message-content-type=text -o message-charset=gb2312
3)验证一下脚本是否可用
-
[root@iZwz9ijiwzg03dd12i6sfmZ alertscripts]# sh mail.sh touser@xxx.com "testtitle" "testinfo"
三、配置告警
1)添加告警用户
2)添加脚本类型告警媒介
3)添加报警action
以下是我的配置:
默认接收人:{TRIGGER.STATUS}:{TRIGGER.NAME} [{HOST.NAME}]
默认信息:
告警主机:{HOST.NAME}
主机IP: {HOST.IP}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息:{TRIGGER.NAME}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
事件ID: {EVENT.ID}
配置<条件>和<操作>,不然会报错
四、验证邮件告警
断开一个agent或者制造其他生效性更快的告警,验证一下是否会收到告警邮件。
阅读(1638) | 评论(0) | 转发(0) |