您的位置:首页 > 运维架构 > Shell

Zabbix发送带附件的邮件

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

消息主体

异常发生

异常内容: {TRIGGER.NAME}

问题时间: {EVENT.DATE} {EVENT.TIME}

持续时间: {EVENT.AGE}

异常详细内容:@http://x.x.x.x:8080/mayiInspector/VipAccount/jsidDelay_fund123sjkbak.txt

Shell脚本

#!/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用户权限
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  shell 邮件 zabbix 附件