八亿电脑网
游戏盒子
当前位置: 首页 > 八亿电脑 > 电脑知识 >

Zabbix与RRDtool绘图篇之用ZabbixAPI取监控数据(2)

时间:2015-03-01 21:27来源:网络 作者:win8e 点击:
游戏盒子

  return res[0]['graphs']

  注意传入的参数是主机名而不是主机id,结果也是由字典组成的列表。

八亿电脑网

  4、获取每张图的监控对象item

  #可以返回完整信息rs,含有hostid

  tmp = res[0]['items']

  items = []

  for value in tmp:

  if '$' in value['name']:

  name0 = value['key_'].split('[')[1].split(']')[0].replace(',', '')

  name1 = value['name'].split()

  if 'CPU' in name1:

  name1.pop(-2)

  name1.insert(1,name0)

  else:

  name1.pop()

  name1.append(name0)

  name = ' '.join(name1)

  tmpitems = {'itemid':value['itemid'],'delay':value['delay'],'units':value['units'],'name':name,'value_type':value['value_type'],

'lastclock':value['lastclock'],'lastvalue':value['lastvalue']}

  else:

  tmpitems = {'itemid':value['itemid'],'delay':value['delay'],'units':value['units'],'name':value['name'],'value_type':value['value_type'],

'lastclock':value['lastclock'],'lastvalue':value['lastvalue']}

  items.append(tmpitems)

  return items

  返回的数据已经包含了最新的一次监控数据的值和取值的时间戳,如果只需要取最新的监控数据,到这里其实就可以了,记得这次传入的参数是graphid。

八亿电脑网

  5、根据itemid取得更多的监控数据

  下面是取10条监控数据,可以任意更改参数获取更多的数据,全凭自己所需了。

  ################################################################

  #获取历史数据,history必须赋值正确的类型0,1,2,3,4 float,string,log,integer,text

  def history_get(self, itemid, i):

  data = http://www.3lian.com/edu/2015/02-27/json.dumps({

  "jsonrPC": "2.0",

  "method": "history.get",

  "params": { "output": "extend",

  "history": i,

  "itemids": itemid,

  "sortfIEld": "clock",

  "sortorder": "DESC",

  "limit": 10},

  "auth": self.authID,

  "id": 1})

  res = self.get_data(data)['result']

  return res

八亿电脑网

  上面的所有代码加起来就是一个Zabbix取数据的类。取出来的数据可以用RRDtool绘图或做其它用途了

本篇文章标签: 教程 Win10 win7 软件 Win8
发表评论