Zabbix邮件告警

1,下载安装sendEmail程序。将sendEmail解压到/usr/local/bin,并给777权限。

2,安装依赖包。yum install perl-Net-SSLeay perl-IO-Socket-SSL -y

3,测试发邮件

/usr/local/bin/sendEmail -f username@server.com -t receive@server.com -s smtp.server.com:25 -u “邮件主题” -o message-content-type=html -o message-charset=utf8 -xu username@server.com -xp password -o tls=no -m “邮件内容” -l /var/log/sendMyEmail.log

参数:

/usr/local/bin/sendEmail        命令主程序

-f username@server.com                发件人邮箱

-t receive@server.com                  收件人邮箱

-s smtp.server.com                发件人邮箱的smtp服务器

-u “邮件主题”                  邮件标题

-o message-content-type=html    邮件内容的格式,html表示它是html格式

-o message-charset=utf8        邮件内容编码

-xu receive@server.com               发件人邮箱用户名

-xp password                      发件人邮箱密码

-m “邮件内容”                  邮件的具体内容

-l /var/log/sendMyEmail.log    非必输项,邮件发送日志记录到日志文件

4,如果收到邮件,即可进行下一步,但网易邮箱存在问题,tls=yes且端口使用ssl端口时,会返回Segmentation fault (core dumped),邮件发不出。


5,修改zabbix配置文件/etc/zabbix/zabbix_server.conf,定义AlertScriptsPath,下一步写的发邮件脚本即放在此目录下。

AlertScriptsPath=/etc/zabbix/alertscripts


6,编写报警脚本,放在/usr/lib/zabbix/alertscripts下,并给777权限

#!/bin/bash

# 脚本的日志文件

LOGFILE=”/tmp/Email.log”

:>”$LOGFILE”

exec 1>”$LOGFILE”

exec 2>&1

 
 

SMTP_server=’smtp.server.com’    # SMTP服务器,变量值需要自行修改

username=’username’    # 用户名,变量值需要自行修改

password=’password’            # 密码,变量值需要自行修改

from_email_address=’user@server.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


 
 


7,创建报警动作


 
 


 
 


 
 


报警动作

名称 sendEmail

默认接收人 故障{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}: {TRIGGER.NAME}

告警主机:{HOSTNAME1}

告警时间:{EVENT.DATE} {EVENT.TIME}

告警等级:{TRIGGER.SEVERITY}

告警信息: {TRIGGER.NAME}

告警项目:{TRIGGER.KEY1}

问题详情:{ITEM.NAME}:{ITEM.VALUE}

当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}

事件ID:{EVENT.ID}

 
 

8,接收信息配置


 
 


 
 


 
 


完成,但现在出现问题发送失败,并未按脚本发送邮件。


 
 

在新的示警媒介中不能选择Email,要选择刚才配置的脚本sendEmail.sh,这样Zabbix才会把告警信息传给脚本,并发邮件。Email选项仍是Zabbix自带的邮件发送程序。


 
 


最后在用户配置中Media选项卡中增加接收告警的邮箱即可。


 

附:

sendEmail,https://static.danteng.org/sendEmail-v1.56.tar.gz

  

本文链接地址: Zabbix邮件告警

打赏作者
赞助/Donate

您的支持将鼓励我们继续创作!

[微信] 扫描二维码打赏

正在跳转到PayPal...

发表评论

电子邮件地址不会被公开。 必填项已用*标注

*