Chinaunix首页 | 论坛 | 博客
  • 博客访问: 69367
  • 博文数量: 11
  • 博客积分: 25
  • 博客等级: 民兵
  • 技术积分: 35
  • 用 户 组: 普通用户
  • 注册时间: 2010-05-07 10:10
文章分类

全部博文(11)

文章存档

2016年(1)

2014年(2)

2013年(8)

我的朋友

分类: 系统运维

2013-12-16 15:10:48

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   


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