亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 網管 > 服務器 > 正文

Zabbix與RRDtool繪圖篇之用ZabbixAPI取監控數據

2020-05-27 13:09:16
字體:
來源:轉載
供稿:網友

  一起來看一個Zabbix與RRDtool繪圖篇之用ZabbixAPI取監控數據技巧文章,希望下文可以幫助到各位。

  經過一個星期的死磕,Zabbix取數據和RRDtool繪圖都弄清楚了,做第一運維平臺的時候繪圖取數據是直接從Zabbix的數據庫取的,顯得有點笨拙,不過借此也了解了Zabbix數據庫結構還是有不少的收獲。

  學習Zabbix的API官方文檔少不了,官方文檔地址鏈接https://www.zabbix.com/documentation/ 大家選擇對應的版本就好了,不過2.0版本的API手冊位置有點特別開始我還以為沒有,后來找到了如下https://www.zabbix.com/documentation/2.0/manual/appendix/api/api 用ZabbixAPI取監控數據的思路大致是這樣的,先獲取所有監控的主機,再遍歷每臺主機獲取每臺主機的所有圖形,最后獲取每張圖形每個監控對象(item)的最新的監控數據或者一定時間范圍的數據。 下面按照上面的思路就一段一段的貼出我的程序代碼:

  1、登錄Zabbix獲取通信token

  #!/usr/bin/env python

  #coding=utf-8

  import json

  import urllib2

  import sys

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

  class Zabbix:

  def __init__(self):

  self.url = "http://xxx.xxx.xxx.xxx:xxxxx/api_jsonrpc.php"

  self.header = {"Content-Type": "application/json"}

  self.authID = self.user_login()

  def user_login(self):

  data = json.dumps({

  "jsonrpc": "2.0",

  "method": "user.login",

  "params": {"user": "用戶名", "password": "密碼"},

  "id": 0})

  request = urllib2.Request(self.url,data)

  for key in self.header:

  request.add_header(key,self.header[key])

  try:

  result = urllib2.urlopen(request)

  except URLError as e:

  print "Auth Failed, Please Check Your Name And Password:",e.code

  else:

  response = json.loads(result.read())

  result.close()

  authID = response[result]

  return authID

  ##################通用請求處理函數####################

  def get_data(self,data,hostip=""):

  request = urllib2.Request(self.url,data)

  for key in self.header:

  request.add_header(key,self.header[key])

  try:

  result = urllib2.urlopen(request)

  except URLError as e:

  if hasattr(e, reason):

  print We failed to reach a server.

  print Reason: , e.reason

  elif hasattr(e, code):

  print The server could not fulfill the request.

  print Error code: , e.code

  return 0

  else:

  response = json.loads(result.read())

  result.close()

  return response

  2、獲取所有主機

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

  #獲取所有主機和對應的hostid

  def hostsid_get(self):

  data = json.dumps({

  "jsonrpc": "2.0",

  "method": "host.get",

  "params": { "output":["hostid","status","host"]},

  "auth": self.authID,

  "id": 1})

  res = self.get_data(data)[result]

  #可以返回完整信息

  #return res

  hostsid = []

  if (res != 0) and (len(res) != 0):

  for host in res:

  if host[status] == 1:

  hostsid.append({host[host]:host[hostid]})

  elif host[status] == 0:

  hostsid.append({host[host]:host[hostid]})

  else:

  pass

  return hostsid

  返回的結果是一個列表,每個元素是一個字典,字典的key代表主機名,value代表hostid

Zabbix與RRDtool繪圖篇之用ZabbixAPI取監控數據 武林網

  3、獲取每臺主機的每張圖形

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

  #查找一臺主機的所有圖形和圖形id

  def hostgraph_get(self, hostname):

  data = json.dumps({

  "jsonrpc": "2.0",

  "method": "host.get",

  "params": { "selectGraphs": ["graphid","name"],

  "filter": {"host": hostname}},

  "auth": self.authID,

  "id": 1})

  res = self.get_data(data)[result]

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

  return res[0][graphs]

  注意傳入的參數是主機名而不是主機id,結果也是由字典組成的列表。

zabbixget02

  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。

zabbixget03

  5、根據itemid取得更多的監控數據

  下面是取10條監控數據,可以任意更改參數獲取更多的數據,全憑自己所需了。

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

  #獲取歷史數據,history必須賦值正確的類型0,1,2,3,4 float,string,log,integer,text

  def history_get(self, itemid, i):

  data = 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

zabbixget04

 

  上面的所有代碼加起來就是一個Zabbix取數據的類。取出來的數據可以用RRDtool繪圖或做其它用途了

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲一区亚洲二区亚洲三区| 亚洲一区二区在线| 欧美色另类天堂2015| 欧美激情国产精品| 欧美性受xxxx白人性爽| 欧美第一黄网免费网站| 精品一区精品二区| 狠狠综合久久av一区二区小说| 久久在线精品视频| 亚洲国产精品va在线看黑人| 亚洲护士老师的毛茸茸最新章节| 欧美激情一区二区三区久久久| 成人网页在线免费观看| 97欧美精品一区二区三区| 亚洲性视频网址| 91精品国产91久久久久久不卡| 91久久久久久国产精品| 亚洲风情亚aⅴ在线发布| 国产福利视频一区二区| 俺去亚洲欧洲欧美日韩| 亚洲一区久久久| 中文字幕日韩欧美在线| 亚洲精品xxxx| 欧美多人爱爱视频网站| 亚洲韩国青草视频| 亚洲qvod图片区电影| 久久精品久久久久| 欧美高清视频一区二区| 亚洲高清福利视频| 国产精品影院在线观看| 有码中文亚洲精品| 伊人激情综合网| 日韩成人激情在线| 国产91精品久久久久久久| 91sa在线看| 国产精品视频播放| 久久国产精品影片| 久久久成人的性感天堂| 日韩欧美在线视频观看| 欧美日韩国产一区在线| 5252色成人免费视频| 韩国精品美女www爽爽爽视频| 国产精品视频精品| xxx一区二区| 国产精品视频自拍| 国产在线拍揄自揄视频不卡99| 国产成人拍精品视频午夜网站| 亚洲最大的成人网| 中文字幕精品久久久久| 性亚洲最疯狂xxxx高清| 亚洲精品久久久一区二区三区| 亚洲欧美国产一本综合首页| 国产精品美女呻吟| 精品亚洲一区二区三区四区五区| 97精品国产97久久久久久| 精品亚洲一区二区| 国产91免费观看| 最近2019免费中文字幕视频三| 欧美精品生活片| 亚洲第一网中文字幕| 精品动漫一区二区三区| 91精品久久久久久久久久久| 亚洲无亚洲人成网站77777| 久久久久久久久亚洲| 日韩在线欧美在线| 国产精品中文久久久久久久| 日韩精品极品毛片系列视频| 久久精品国亚洲| 欧美肥老妇视频| 精品成人av一区| 国产视频亚洲视频| 国产精品91久久久久久| 亚洲精品网站在线播放gif| 亚洲女人天堂成人av在线| 粗暴蹂躏中文一区二区三区| 麻豆成人在线看| 日韩小视频在线| 欧美极度另类性三渗透| 国产日本欧美一区二区三区在线| 国产日韩综合一区二区性色av| 88国产精品欧美一区二区三区| 日韩欧美成人网| 91成人免费观看网站| 中文字幕精品一区久久久久| 久久久精品欧美| 午夜精品久久久久久久男人的天堂| 91精品国产自产在线| 在线观看视频99| 欧美大学生性色视频| 日韩视频免费在线| 日韩中文字在线| 欧美一区第一页| 国产日韩欧美中文在线播放| 黄色一区二区在线| 欧美电影免费观看高清完整| 国产91在线播放九色快色| 久久99精品国产99久久6尤物| 亚洲丝袜一区在线| 欧美国产日本在线| 国内精品国产三级国产在线专| 色综合久久悠悠| 久久国内精品一国内精品| 国产v综合ⅴ日韩v欧美大片| 欧美视频不卡中文| 91av免费观看91av精品在线| 久久久久久中文| 不卡av在线网站| 91久久精品久久国产性色也91| 午夜免费久久久久| 深夜福利91大全| 精品一区二区三区三区| 另类图片亚洲另类| 亚洲国产精品成人va在线观看| 97在线视频一区| www国产亚洲精品久久网站| 91国产在线精品| 久久全国免费视频| 色先锋久久影院av| 欧美精品精品精品精品免费| 国产男女猛烈无遮挡91| 久久久999成人| 日本高清+成人网在线观看| 亚洲一区二区三区四区视频| 国产精品一区=区| 色一情一乱一区二区| 亚洲女同精品视频| 欧美野外wwwxxx| 俺去亚洲欧洲欧美日韩| 久久电影一区二区| 日韩视频永久免费观看| 欧美在线观看一区二区三区| 91九色综合久久| 欧美在线一级va免费观看| 一区二区三区动漫| 一区二区三区视频免费在线观看| 亚洲精品小视频在线观看| 亚洲欧美变态国产另类| 亚洲电影免费观看高清| 亚洲理论片在线观看| 在线日韩av观看| 亚洲无限乱码一二三四麻| 国产丝袜一区视频在线观看| 亚洲精品一区二区三区不| 色偷偷88888欧美精品久久久| 日韩在线观看免费| 亚洲色图美腿丝袜| 日韩高清有码在线| 亚洲国产古装精品网站| 久久亚洲精品国产亚洲老地址| 久久国产精品久久久久久| 一道本无吗dⅴd在线播放一区| 91在线观看欧美日韩| 在线电影欧美日韩一区二区私密| 成人国产精品免费视频| 欧美一级视频在线观看| 国产精品久久不能| 国产综合色香蕉精品| 精品国产电影一区| 美女视频久久黄| 亚洲日韩第一页| 色妞久久福利网| 亚洲精品91美女久久久久久久| 色偷偷888欧美精品久久久| 久久久久国产精品一区|