shaerzzr 发表于 2019-1-21 09:37:58

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

  通过邮件方式把报表导出,主要原理是利用curl拼接图片的URL地址,然后以附件的形式把图片通过邮件发送出去。
  下面以具体事例说明:
  http://192.168.36.130/zabbix/chart2.php?graphid=2649&period=3600&stime=20151019143624
http://s3.运维网.com/wyfs02/M02/74/AC/wKioL1YmA3Oityo0AALhjoEqKzo405.jpg通过脚本把该图片过滤出来,然后利用邮件发送出去
  主要脚本为:
  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 以邮件附件形式导出报表