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绘图或做其它用途了 |