Zabbix发送带附件的邮件

2020-08-21 01:23:14 浏览数 (1)

Zabbix告警由于内容主体有诸多限制,很难传达所有的告警信息,可以通过添加附件的方式将详细信息发送给接收人,比如说要发送的文件存在apache文件服务器中,这个文件内容每隔一段时间会变动,我们可以将文件链接放在消息主体中,当shell脚本接收到消息主体参数时,解析出其中的链接,并将内容下载到缓存文件中,然后将该文件以附件的方式随邮件一起发送出去。发送完成后将缓存文件删掉。

消息主体 异常发生 异常内容: {TRIGGER.NAME} 问题时间: {EVENT.DATE} {EVENT.TIME} 持续时间: {EVENT.AGE}

Shell脚本

代码语言:javascript复制
#!/bin/bash
#接收参数
to=$1
subject=$2
body=$3

http=`echo $body|grep -m1 'http'`
#根据@符号获取到下载链接
http=`echo "$http" | grep -m1 http | cut -d "@" -f2|cut -d " " -f1`
#拿到文件名
fileDir=${http##*/}
#补全文件路径
fileDir="/usr/lib/zabbix/alertscripts/"${fileDir}
#由于文件存在,每次发送前都要重新下载一遍
if [ -e "$fileDir" ];then
rm $fileDir
#将文件下载到指定目录中
wget -P /usr/lib/zabbix/alertscripts $http
else
wget -P /usr/lib/zabbix/alertscripts $http
fi
/usr/local/bin/sendEmail  -f xxx@xxx.com -t "$to" -s xxx.xxx.com -u "$subject" -o message-content-type=html -o message-charset=utf-8 -xu xxx@xxx.com  -xp xxxx  -m "$body" -a $fileDir
#删除缓存文件
rm $fileDir

当触发器被触发时,收到带附件的邮件

备注:由于shell脚本存在删除操作,所以一定要记得给文件以及文件所在的文件夹添加zabbix用户权限

0 人点赞