一.安装sendEmail
[root@zabbix ~]# wget
[root@zabbix ~]# mkdir /usr/local/bin
[root@zabbix ~]# tar zxvf sendEmail-v1.56.tar.gz
[root@zabbix ~]# cd sendEmail-v1.56
[root@zabbix sendEmail-v1.56]# cp -a sendEmail /usr/local/bin
[root@zabbix sendEmail-v1.56]# chmod +x /usr/local/bin/sendEmail
二.查找脚本存放路径
[root@zabbix ~]# vim /etc/zabbix/zabbix_server.conf
在457行左右
AlertScriptsPath=/usr/local/zabbix/alertscripts
注意:此路径为我自己修改后的路径。默认路径为/usr/lib/zabbix/alertscripts/,可以用默认路径存放脚本。 如果修改路径,必须重启服务。 我修改完路径没重启服务,zabbix还是从默认路径调用脚本,导致无法发送邮件。 修改完路径后,需要创建路径
[root@zabbix ~]#mkdir -p /usr/local/zabbix/alertscripts/
三.设置发送脚本
[root@zabbix ~]# cat /usr/local/zabbix/alertscripts/mailx.sh
#!/bin/bash
SMTP_server='smtp.mxhichina.com' # SMTP服务器username='xxx@xxx.com' # 用户名password='xxxxxxx' # 密码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_utf8EOF`[ $? -eq 0 ] && message_subject="$message_subject_gb2312" || message_subject="$message_subject_utf8"# 转换邮件内容为GB2312message_body_gb2312=`iconv -t GB2312 -f UTF-8 << EOF$message_body_utf8EOF`[ $? -eq 0 ] && message_body="$message_body_gb2312" || message_body="$message_body_utf8"# 发送邮件sendEmail='/usr/local/bin/sendEmail'$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=gb2312echo "`date +"%F %T"` send to $to_email_address" >> /tmp/mailx.log注意:倒数2 3 4贴到脚本里后,整成一行。
添加执行权限
[root@zabbix alertscripts]# chmod +x mailx.sh
[root@zabbix ~]# /usr/local/zabbix/alertscripts/mailx.sh xxx@xxx.com zabbixtest "zabbix test!"
如果能发送邮件,说明前面的都设置成功!
三.zabbix 设置邮件发送
创建报警媒介
管理--报警媒介类型--创建媒体类型
{ALERT.SENDTO}
{ALERT.SUBJECT}
{ALERT.MESSAGE}
2.创建发送邮件用户
管理--用户--创建用户
创建用户有三个选项,用户,报警媒介,权限
用户
报警媒介--添加 注意:类型要跟报警媒介类型的名称一致
用户 给个超级管理员权限
3.创建动作
配置--动作--创建动作
创建动作里有 动作,条件,操作三个选项
动作,此为发送邮件入口
默认接收人 故障{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}恢复信息也跟上面一样
条件, 触发器--选择-选中需要邮件告警的触发器--添加--更新
操作
默认操作步骤持续时间: 间隔600秒发送一次报警邮件
操作细节--步骤-- 1 - 5 5表示最多发送5封告警邮件 0表示无限制次数发送
至此,邮件告警设置完成,只要有达到触发器阈值的,就会发送告警邮件。