本次zabbix邮件报警时通过sendEmail这一个轻量级的命令行的smtp电子邮件客户端,使用脚本的方式实现邮件报警。
此次使用的Linux发行版是CentOS 6.5,zabbix版本为3.0.3
一、下载sendEmail
wget http://caspian.dotconf.net/menu/Software/SendEmail/sendEmail-v1.56.tar.gz
sendEmail安装方法:
1 2 3 |
shell # tar xvzf sendEmail-v1.56.tar.gz
|
二、zabbix服务器端发送邮件脚本
假如zabbix 配置目录位置在/etc/zabbix/
1.创建/etc/zabbix/alertscripts目录
shell# mkdir -p /etc/zabbix/alertscripts
shell# chown -R zabbix:zabbix /etc/zabbix/alertscripts
2.修改邮件脚本配置目录/etc/zabbix/zabbix_server.conf
AlertScriptsPath=/etc/zabbix/alertscripts
修改后重启zabbix server。
三、 创建发送邮件脚本
#!/bin/bash # 脚本的日志文件 LOGFILE="/tmp/Email.log" :>"$LOGFILE" exec 1>"$LOGFILE" exec 2>&1 SMTP_server=‘smtp.163.com‘ # SMTP服务器,变量值需要自行修改 username=‘[email protected]‘ # 用户名,变量值需要自行修改 password=‘xxxxxx‘ # 密码,变量值需要自行修改 from_email_address=‘[email protected]‘ # 发件人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 "$messag e_subject" -m "$message_body" -o message-content-type=text -o message-charset=gb2312
shell# touch /tmp/Email.log shell# chown zabbix:zabbix /tmp/Email.log shell# chown zabbix:zabbix /etc/zabbix/alertscripts/SendEmail.sh shell# chmod +x /etc/zabbix/alertscripts/SendEmail.sh
================================================================= shell# touch /tmp/Email.log shell# chown zabbix:zabbix /tmp/Email.log shell# chown zabbix:zabbix /etc/zabbix/alertscripts/SendEmail.sh shell# chmod +x /etc/zabbix/alertscripts/SendEmail.sh
测试发送邮件
shell# /etc/zabbix/alertscripts/SendEmail.sh [email protected] "测试邮件标题" "测试邮件内容 。
四、WEB页面报警配置
点击管理->报警媒介类型 点击最右边的创建媒体类型
注:安装zabbix 3.0之后,需要填写这3个参数,2.x不需要
ALERT注意别写错
点击Admin用户,添加报警媒介
选择sendEmail.sh脚本,输入收件人的邮箱地址
点击用户群组,点击zabbix administrator后面的调用模式,点击一下,就启用了
点击Zabbix用户群组->权限,全部选择添加
点击配置->动作 点击默认的动作
点击配置->动作->动作 设置邮件发送格式
默认接收人:故障{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}
恢复信息:打钩
恢复主旨:恢复{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}
已启用:打钩
注:默认的步骤是1-1,也即是从1开始到1结束。一旦故障发生,就是执行sendEmail.sh脚本发生报警邮件给Admin用户 和zabbix administrator组。
假如故障持续了1个小时,它也只发送一次。如果改成1-0,0是表示不限制.无限发送
间隔就是默认持续时间60秒。那么一个小时,就会发送60封邮件。
测试邮件报警
随便添加一台不存在的主机,几分钟后显示红色状态
再过几分钟后,收到了邮件,说明设置成功