国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院

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

Zabbix與RRDtool繪圖之創建每臺主機每張圖的rrd文件

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

  下面我們一起來看一個關于Zabbix與RRDtool繪圖之創建每臺主機每張圖的rrd文件文章,希望這個例子可以給你有幫助。

  RRDtool對于圖形展示有多優秀,想必懂的人都知道。

  兵馬未動糧草先行。搞IT的得手冊先行RRDtool的官方手冊地址http://oss.oetiker.ch/rrdtool/doc/index.en.html 還有ailms整理的“RRDtool簡體中文教程 v1.01” 該教材通俗易懂,先膜拜下!基本看了alims的 那個教程就對RRDtool清楚了。

  我創建每臺主機每張rrd文件用的是多線程,遍歷每張圖的時間大概12秒的樣子,千張圖的rrd文件創建大概2分鐘的樣子,主要受硬件的限制,如果

  有更快的硬盤和更多的線程應該會快不少。rrd文件分類參考了cacti的風格,創建的rrd文件按主機ID分文件夾存放(hostid),每張圖的名稱

  由圖形ID和.rrd后綴組成(graphid.rrd)。

Zabbix與RRDtool繪圖之創建每臺主機每張圖的rrd文件 武林網

  創建每個rrd文件的py模塊如下,寫的有點笨,有多少個不同的item組成的圖形就得定義不同的創建函數,我找了一個下午都沒有找到更好的傳參方法,先

  就用這個笨方法。記住有幾種DS就需要寫對應的Item函數,下面我只列出Item03,我是不會告訴你們我總共堆了24個一直到Item24

  代碼如下復制代碼

  #!/usr/bin/env python

  #coding=utf-8

  import rrdtool

  def Item01(rrdname, startStamp, DS):

  rrdtool.create(rrdname, --step, 60, --start, startStamp, DS[0],

  RRA:AVERAGE:0.5:1:3000,

  RRA:AVERAGE:0.5:5:4200,

  RRA:AVERAGE:0.5:24:3800,

  RRA:AVERAGE:0.5:240:4400,

  RRA:MAX:0.5:1:3000,

  RRA:MAX:0.5:5:4200,

  RRA:MAX:0.5:24:3800,

  RRA:MAX:0.5:240:4400,

  RRA:MIN:0.5:1:3000,

  RRA:MIN:0.5:5:4200,

  RRA:MIN:0.5:24:3800,

  RRA:MIN:0.5:240:4400)

  def Item02(rrdname, startStamp, DS):

  rrdtool.create(rrdname, --step, 60, --start, startStamp, DS[0],

  DS[1],

  RRA:AVERAGE:0.5:1:3000,

  RRA:AVERAGE:0.5:5:4200,

  RRA:AVERAGE:0.5:24:3800,

  RRA:AVERAGE:0.5:240:4400,

  RRA:MAX:0.5:1:3000,

  RRA:MAX:0.5:5:4200,

  RRA:MAX:0.5:24:3800,

  RRA:MAX:0.5:240:4400,

  RRA:MIN:0.5:1:3000,

  RRA:MIN:0.5:5:4200,

  RRA:MIN:0.5:24:3800,

  RRA:MIN:0.5:240:4400)

  def Item03(rrdname, startStamp, DS):

  rrdtool.create(rrdname, --step, 60, --start, startStamp, DS[0],

  DS[1], DS[2],

  RRA:AVERAGE:0.5:1:3000,

  RRA:AVERAGE:0.5:5:4200,

  RRA:AVERAGE:0.5:24:3800,

  RRA:AVERAGE:0.5:240:4400,

  RRA:MAX:0.5:1:3000,

  RRA:MAX:0.5:5:4200,

  RRA:MAX:0.5:24:3800,

  RRA:MAX:0.5:240:4400,

  RRA:MIN:0.5:1:3000,

  RRA:MIN:0.5:5:4200,

  RRA:MIN:0.5:24:3800,

  RRA:MIN:0.5:240:4400)

  基本創建rrd文件的模塊寫好了,然后組織數據、調用函數傳遞相應的參數就可以了,下面是我寫的一個多線程程序,同時啟用16個線程工作(CPU線程數的2倍)??筛木€程數適應不同的硬件環境。

  代碼如下復制代碼

  #!/usr/bin/env python

  #coding=utf-8

  from zabbixget import Zabbix

  from time import ctime

  import threading

  import createsub

  import os

  import time, datetime

  def rrd_create(grinfo):

  #如果主機存放rrd圖形目錄不存在,則創建

  bashdir = "/opt/rrd/"

  path = bashdir + grinfo[0][hostid] + "/"

  if not os.path.exists(path):

  os.makedirs(path)

  rrdname = str(path + grinfo[0][graphid] + .rrd)

  timeDaysAgo = (datetime.datetime.now() - datetime.timedelta(days = 730))

  startStamp = str(int(time.mktime(timeDaysAgo.timetuple())))

  DS = []

  for sub in grinfo:

  DStmp = str(DS: + sub[itemid] + :GAUGE:120:0:U)

  DS.append(DStmp)

  if len(DS) == 1: createsub.Item01(rrdname, startStamp, DS)

  elif len(DS) == 2: createsub.Item02(rrdname, startStamp, DS)

  elif len(DS) == 3: createsub.Item03(rrdname, startStamp, DS)

  elif len(DS) == 4: createsub.Item04(rrdname, startStamp, DS)

  elif len(DS) == 5: createsub.Item05(rrdname, startStamp, DS)

  elif len(DS) == 6: createsub.Item06(rrdname, startStamp, DS)

  elif len(DS) == 7: createsub.Item07(rrdname, startStamp, DS)

  elif len(DS) == 8: createsub.Item08(rrdname, startStamp, DS)

  elif len(DS) == 9: createsub.Item09(rrdname, startStamp, DS)

  elif len(DS) == 10: createsub.Item10(rrdname, startStamp, DS)

  elif len(DS) == 11: createsub.Item11(rrdname, startStamp, DS)

  elif len(DS) == 12: createsub.Item12(rrdname, startStamp, DS)

  elif len(DS) == 13: createsub.Item13(rrdname, startStamp, DS)

  elif len(DS) == 14: createsub.Item14(rrdname, startStamp, DS)

  elif len(DS) == 15: createsub.Item15(rrdname, startStamp, DS)

  elif len(DS) == 16: createsub.Item16(rrdname, startStamp, DS)

  elif len(DS) == 17: createsub.Item17(rrdname, startStamp, DS)

  elif len(DS) == 18: createsub.Item18(rrdname, startStamp, DS)

  elif len(DS) == 19: createsub.Item19(rrdname, startStamp, DS)

  elif len(DS) == 20: createsub.Item20(rrdname, startStamp, DS)

  elif len(DS) == 21: createsub.Item21(rrdname, startStamp, DS)

  elif len(DS) == 22: createsub.Item22(rrdname, startStamp, DS)

  elif len(DS) == 23: createsub.Item23(rrdname, startStamp, DS)

  elif len(DS) == 24: createsub.Item24(rrdname, startStamp, DS)

  def rrd_update(rrdfile, data):

  pass

  def hosts_get():

  global zb

  zb = Zabbix()

  hostsName = zb.hostsid_get()

  return hostsName

  #遍歷每臺主機每張圖的每個項目的最新10的值,后來考慮到api的壓力改成每張圖的最新值(減少了一個for循環變量items)

  def items_get(host):

  bashdir = "/opt/rrd/"

  graphsName = zb.hostgraph_get(host.keys())

  for graph in graphsName:

  grapitem = zb.graphitems_get(graph[graphid])

  rrdfile = bashdir + host.values()[0] + "/" + str(graph[graphid]) + .rrd

  if os.path.isfile(rrdfile):

  data = []

  for item in grapitem:

  tmp = {itemid:item[itemid],lastvalue:item[lastvalue]}

  data.append(tmp)

  rrd_update(rrdfile, data)

  print data

  else:

  grinfo = []

  for item in grapitem:

  tmp = {hostid: host.values()[0], graphid: graph[graphid], itemid: item[itemid]}

  grinfo.append(tmp)

  rrd_create(grinfo)

  def main():

  threads = []

  keys = hosts_get()

  numkey = len(keys)

  loop = 0

  for i in range(0, numkey, 16):

  nkeys = range(loop*16, (loop+1)*16, 1)

  for i in nkeys:

  if i >= numkey:

  break

  else:

  t = threading.Thread(target=items_get, args=(keys[i],))

  threads.append(t)

  for i in nkeys:

  if i >= numkey:

  break

  else:

  threads[i].start()

  for i in nkeys:

  if i >= numkey:

  break

  threads[i].join()

  loop = loop + 1

  if __name__ == "__main__":

  main()

 

  上面還有更新數據的函數沒有寫完,用pass站位。過多的解釋就不用了,對著相應的注釋大家都應該看的懂。

 
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院
国产麻豆精品高清在线播放| 日本在线免费中文字幕| 国产成人亚洲精品播放器下载| 国产在线观看网站| 狠狠干天天爱| 黄色国产在线| 日本中文字幕高清视频| 黄色电影网站在线观看| 性欧美精品xxxx| 国产精品欧美色图| 国产二区视频| 欧美韩日国产| 国产九九九九| 国产福利av网站| 免费三级毛片| 国产经典自拍视频在线观看 | 亚洲日本久久久午夜精品| 亚洲欧美精品日韩欧美| 交视频在线观看国产| 国产在线观看18| 国产精品久久久久久久久鸭| av福利在线| 中文字幕在线视频免费观看| 国产高清视频免费最新在线| av中文字幕在线看| 国产欧美在线观看视频| 久久国产热视频| 精品99又大又爽又硬少妇毛片| 另类高清dbsm日本tvav| 精品国产美女福利到在线不卡| 快射av在线播放一区| 在线三级中文| 国产精品国产国产aⅴ| 超碰在线国产| av在线不卡免费| 中文字幕在线看精品乱码| 欧美啪啪精品| 亚洲欧洲成人| 国产99re| 国产成a人亚洲精v品| 国产亚洲精品久久久久久移动网络| 在线观看av中文| 国产叼嘿网站免费观看不用充会员| 久蕉依人在线视频| 日本成人免费网站| 亚洲xxxxxx| 亚洲欧美日韩成人网| a√在线视频| 夜夜操天天干| h网址在线观看| 精品视频二区| 一二三四区在线观看| 99re热在线观看| av中文资源在线| 亚洲大香人伊一本线| 在线三级中文| 成年黄网站在线观看免费| 狠狠操天天操夜夜操| 国产在线高清理伦片a| 日本最新在线视频| 国产三级视频在线看| 999国产在线视频| 亚洲国产日韩成人综合天堂| 免费国产视频| 国产系列在线观看| 国产极品视频| а√天堂www在线а√天堂视频| jizz亚洲| 国产一区二区三区福利| 国产不卡在线| 免费99热在线观看| 日本中文字幕在线看| 在线天堂av| 免费视频中文字幕| 国产超碰在线观看| 成人免费一区二区三区牛牛| 国产黄色一级片| 超碰免费在线播放| 久久久久久91精品色婷婷| 黄色片视频在线观看| 午夜在线小视频| 国产精品扒开做爽爽爽的视频| 精精国产xxxx视频在线中文版| 亚洲精品影视在线| 综合图区亚洲白拍在线| 亚洲精品男人| 国产黄色在线| 国产乱在线观看视频| av在线免费观看网| 国产成人综合亚洲欧美在| 久久久久久77777| 亚洲精品手机在线| 国产区成人精品视频| 国产女王在线**视频| 欧美a免费在线| 国产麻豆一区二区三区精品| 国产成免费视频| 国产亚洲精品久久久网站好莱| www.麻豆av.com| 精品国产一区二区三区四区阿崩 | 最近中文字幕mv免费高清视频8 | 国产盗摄精品一区二区酒店| 国产在线观看色| 久热免费视频| 欧美亚洲系列| 伊人狠狠av| 天堂在线国产| 男女羞羞视频在线观看| sese一区| 九九精品九九| 国产一级二级在线| 国产精品午夜久久久久久| 狠狠干五月天| 国产写真视频在线观看| 中文字幕日本三级| 91福利在线免费| 国产人成在线观看| 国产精品666| 精品入口麻豆传煤| 亚洲高清在线免费| www在线播放| 黄色一级片视频| 国产小黄视频| av激情在线| 超碰免费在线播放| 国产黄色片大全| jizz性欧美| 国产网站麻豆精品视频| 精品久久av| 麻豆精品不卡国产免费看| 国产剧情在线一区| 96精品视频| 久久er视频| 2019中文字幕在线视频| 欧美精品se| 国产视频二区| 97视频免费| 国产麻豆麻豆| 在线成人综合色一区| 狠狠操狠狠色| 亚洲网站一区| 国产黄色av免费看| 人日人天天爽| 在线免费观看高清视频色| 国产原创精品视频| 在线黄色国产电影| 国产a级网站| 国产一二三视频| 麻豆精品永久免费视频| 中文字幕在线视频观看| 国产高清视频在线| 激情四房婷婷| 色欧美在线观看| 国产福利三区| 中文字幕在线观看av| 老司机在线视频二区| 四虎www视频| 中文字幕av在线| 在线伊人免费视频| 精品网站www| 91午夜在线| 精品国内自产拍在线视频| 国产福利三区| 国产不卡精品一区二区三区| 国产一卡2卡3卡四卡网站| 欧美黑人乱大交| 午夜在线观看91| 羞羞视频在线观看免费| 在线观看免费观看在线91| 99高清免费国产自产拍| 伊人伊人av电影| 亚洲第一成年免费网站| 亚洲成人在线播放| 亚洲欧美精选| 麻豆网站在线| 成在在线免费视频| 国产精品自产拍在线网站| 青青草免费在线视频| 免费不卡中文字幕视频| 国产精品一区二区婷婷| 狠狠干天天爱| 国产高潮av| 中文国产字幕在线观看| 99久久免费精品国产免费| 香蕉视频在线看| 狠狠干五月天| 国产aa视频| 九九热在线视频观看| 国产亚洲精品久久久久久青梅| 国产精品178页| av在线网页| 尤物网站在线| 精品入口麻豆传煤| 国产嫩草在线视频| 精品视频二区三区| 麻豆精品视频入口| 2020国产在线视频| 成年午夜在线| 日本成a人片在线观看| 国产图片综合|