Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1760336
  • 博文数量: 150
  • 博客积分: 660
  • 博客等级: 上士
  • 技术积分: 2480
  • 用 户 组: 普通用户
  • 注册时间: 2005-08-08 11:39
文章分类

全部博文(150)

文章存档

2019年(4)

2018年(36)

2017年(53)

2016年(7)

2015年(3)

2014年(3)

2013年(27)

2012年(2)

2011年(1)

2006年(1)

2005年(13)

分类: 系统运维

2013-10-24 11:30:34

1、目标

    zabbix拥有丰富的图形展示,有时会需要将特定的实时生成的图形数据发给其他部门使用。这里就是有个将IMS系统的在线人数发给特定邮件组的需求实现过程。

2、环境

   a、zabbix_server端已经设置好ims系统的在线人数图形展现,即登录zabbix front拥有权限的人可以在screen里面看到IMS在线人数的图形。
   b、牵涉到发邮件,那么假定该服务器上已经安装了sendmail服务;
   c、已经确定该图形发送周期为天,那么发送脚本可以放到crontab里面执行;
    d、因为zabbix front需要cookie验证登录后的操作,本例使用curl来模拟浏览器的登录和后续操作,如果curl在系统中不存在请事先安装。

3、shell设置过程

   a、第一步需要设置curl模拟的用户信息

   b、第二步设置shell工作目录

   c、设置生成图形的参数,包括图片宽度和显示周期

   d、模拟登录zabbix front,获取符合c要求的图片

   e、发送邮件给相应的邮件组,附件为下载的图片

   f、设置crontab

    #每天发ims邮件
     0 18 * * * /home/zabbix/get_ims_png.sh 

4、shell脚本内容
#!/bin/bash
source /etc/profile
#设定参数
cookie=za01.txt
name=“your_name"
password="your_password"
url=
#设定工作目录 
cd /home/zabbix
#模拟登录zabbix
curl -c $cookie -b $cookie  -d "request=&name=$name&password=$password&autologin=1&enter=Sign+in" $url/index.php
#设定下载ims在线用户数的参数
# graphid标示该张图; period标示周期,单位为秒; stime标示开始时间,这里取上一天的此时此刻; width为图片宽度
#graphid=2673&period=86400&stime=20140513143636&updateProfile=1&sid=2955dc34296ccec9
graphid=2673  
period=86400  
stime=`date -d -1day  +%Y%m%d%H%M%S`
width=800


curl -b $cookie -F "graphid=$graphid" -F "period=$period" -F "stime=$stime" -F "width=$width" $url/chart2.php > ims.png 
#发邮件
#收件人列表
reciever="xxx@xxx.com yyyy@yyy.com.cn "
cc_reciever="yunwei@xxx.com"


titile=`date +%Y年%m月%d日IMS在线用户数曲线图`
mail -s $titile -a ims.png -c $cc_reciever -r report@xxx.com $reciever   


    
阅读(3848) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~