23recfv 发表于 2015-10-21 13:04:59

zabbix 以邮件附件形式导出报表

通过邮件方式把报表导出,主要原理是利用curl拼接图片的URL地址,然后以附件的形式把图片通过邮件发送出去。下面以具体事例说明:
http://192.168.36.130/zabbix/chart2.php?graphid=2649&period=3600&stime=20151019143624
通过脚本把该图片过滤出来,然后利用邮件发送出去
主要脚本为:
curl -s -c $COOKIE -b $COOKIE-d "request=&name=${NAME}&password=${PASSWD}&autologin=1&enter=Sign+in" $URL //主要功能是记录cookie,成功登陆进zabbix服务器
[[ ! -s "$COOKIE" ]] && exit 0    //对cookie进行各判断
下面这个命令的主要作用是把图片过滤出来存放到某个目录下
参数说明:
grapid 图片ID
period(获取数据的时间段)可以是1小时,1周,1一个月等以秒为单位 PERIOD=604800
curtime 当前时间 STIME=$(date +%Y%m%d%H%M%S)
width 图片的宽度 WHIDTH=1200
curl -s -b $COOKIE \
    -F "graphid=${CPU_ITEMID}" \
    -F "period=$PERIOD" \
    -F "curtime=$STIME" \
    -F "width=$WHIDTH" \
    "$URL2/chart2.php" > cpu_png/${i}.png
发送邮件:

echo "附件为抽查服务器cpu idle曲线图" | /bin/mailx -s "$CPU_TITLE" $CPU_PNG $EMAIL
"$CPU_TITLE" 邮件主题
$CPU_PNG 附件内容CPU_PNG="-a xxx.png"
$EMAIL 邮件地址
以上功能可以实现基本的报表以附件形式导出,只是麻烦之处在于graphid的获取,后期逐步完善其他形式的报表导出。

页: [1]
查看完整版本: zabbix 以邮件附件形式导出报表