fsfss21 发表于 2017-3-6 09:36:44

Zabbix监控 之sendEmail脚本邮件报警配置【5】

本次zabbix邮件报警时通过sendEmail这一个轻量级的命令行的smtp电子邮件客户端,使用脚本的方式实现邮件报警。
此次使用的Linux发行版是CentOS 6.5,zabbix版本为3.0.3
Zabbix监控之不发送邮件异常【附属】
一、下载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
shell# cp sendEmail-v1.56/sendEmail /usr/local/bin/
shell# chmod 755 /usr/local/bin/sendEmail

二、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。
三、 创建发送邮件脚本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#!/bin/bash
# 脚本的日志文件
LOGFILE="/tmp/Email.log"
:>"$LOGFILE"
exec 1>"$LOGFILE"
exec 2>&1

SMTP_server='smtp.163.com'    # SMTP服务器,变量值需要自行修改
username='xxx@163.com'   # 用户名,变量值需要自行修改
password='xxxxxx'             # 密码,变量值需要自行修改
from_email_address='xxx@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'
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





1
2
3
4
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





1
2
3
4
5
=================================================================
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 xxxxxx@qq.com "测试邮件标题" "测试邮件内容 。
四、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封邮件。
测试邮件报警随便添加一台不存在的主机,几分钟后显示红色状态

再过几分钟后,收到了邮件,说明设置成功


页: [1]
查看完整版本: Zabbix监控 之sendEmail脚本邮件报警配置【5】