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

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

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站位。過多的解釋就不用了,對著相應的注釋大家都應該看的懂。

 
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久久av亚洲男天堂| 成人免费网视频| 欧美性视频网站| 国产综合久久久久| 国产日韩欧美一二三区| 久久中文字幕在线视频| 国产a∨精品一区二区三区不卡| 亚洲在线免费视频| 中日韩美女免费视频网站在线观看| 亚洲精品国产精品国自产观看浪潮| 久久91超碰青草是什么| 亚洲天堂一区二区三区| 久久影院在线观看| 欧美亚洲在线视频| 日韩av电影中文字幕| 国产精品高潮呻吟久久av野狼| 欧美日韩亚洲网| 色综久久综合桃花网| 国产精品日韩在线| 日本成人在线视频网址| 国产在线一区二区三区| 欧美激情久久久久| 亚洲精品视频免费在线观看| 国产成人av在线播放| 国产精品一久久香蕉国产线看观看| 国产精品99久久久久久久久| 美女视频久久黄| 午夜精品三级视频福利| 欧美性猛交xxxx黑人| 日韩毛片在线看| 欧美黄色小视频| 另类美女黄大片| 久久综合久久八八| 成人高清视频观看www| 91国在线精品国内播放| 91精品国产一区| 色噜噜国产精品视频一区二区| 91久久久在线| 亚洲风情亚aⅴ在线发布| 亚洲石原莉奈一区二区在线观看| 欧美日韩精品在线播放| 成人免费看黄网站| 欧美裸体视频网站| 国模叶桐国产精品一区| 日本久久久久亚洲中字幕| 国产精品久久久久高潮| 欧美午夜性色大片在线观看| 日韩在线高清视频| 欧美高清视频在线观看| 欧美黄色片免费观看| 久久久精品999| 欧美国产视频一区二区| 亚洲日本aⅴ片在线观看香蕉| 久久在精品线影院精品国产| 在线性视频日韩欧美| 日本成人在线视频网址| 国产午夜精品久久久| 久久久久亚洲精品成人网小说| 亚洲aa在线观看| 在线成人激情黄色| 欧美激情免费观看| 欧美激情视频在线| 国产亚洲精品久久久久久牛牛| 国产亚洲日本欧美韩国| 国产精品日日做人人爱| 国产精品嫩草视频| 亚洲高清福利视频| 成人性生交大片免费看小说| 欧美日韩国产专区| 亚洲天堂男人天堂女人天堂| 日韩欧亚中文在线| 久久成人这里只有精品| 欧美国产日韩免费| 精品成人在线视频| 国产97人人超碰caoprom| 久久艹在线视频| 精品日本高清在线播放| 91免费的视频在线播放| 性欧美xxxx视频在线观看| 8x海外华人永久免费日韩内陆视频| 国产精品偷伦免费视频观看的| 国产精品777| 亚洲综合大片69999| 国产不卡视频在线| 日韩午夜在线视频| 亚洲老板91色精品久久| 欧洲亚洲在线视频| 色视频www在线播放国产成人| 日韩精品在线影院| 国产精品欧美风情| 中文字幕av一区二区三区谷原希美| 欧美日韩精品在线观看| 欧美日本黄视频| 日韩欧美一区二区三区| 国产亚洲欧美日韩一区二区| 欧美色播在线播放| 川上优av一区二区线观看| 91爱视频在线| 欧美猛交免费看| 亚洲精品电影久久久| 亚洲精品视频在线观看视频| 久久影视免费观看| 欧美性猛交99久久久久99按摩| 中文字幕日韩av| 精品久久香蕉国产线看观看亚洲| 欧美午夜精品久久久久久人妖| 国产91九色视频| 欧美综合一区第一页| 国产精品一二区| 国产成人一区二区三区小说| 日韩欧美第一页| 欧美专区第一页| 国产91色在线免费| 欧美精品video| 久久国产精品久久久久久| 亚洲丁香婷深爱综合| 日韩欧美亚洲成人| 亚洲最大av网| 欧美日韩国产中文精品字幕自在自线| 国产欧美精品一区二区三区-老狼| 欧美小视频在线观看| 精品国产一区二区三区久久久| 久久国产精品首页| 成人av资源在线播放| 欧美性xxxxx极品娇小| 91精品啪在线观看麻豆免费| 亚洲日本成人女熟在线观看| 欧美一级片久久久久久久| 国产精品中文字幕久久久| 国产香蕉97碰碰久久人人| 国产成人精品优优av| 2023亚洲男人天堂| 亚洲欧美日韩精品久久亚洲区| 亚洲人午夜精品| 91免费电影网站| 3344国产精品免费看| 色婷婷av一区二区三区久久| 精品毛片网大全| 日韩美女免费观看| 色999日韩欧美国产| 亚洲一区美女视频在线观看免费| 国产精品一区二区三区在线播放| 亚洲尤物视频网| 国产精品久久久久久久久| 亚洲成人av片| 91久久精品国产91久久性色| 超碰97人人做人人爱少妇| 最近免费中文字幕视频2019| 国产啪精品视频网站| 欧美老女人性视频| 亚洲综合第一页| 久久青草福利网站| 色播久久人人爽人人爽人人片视av| 疯狂欧美牲乱大交777| 日韩最新在线视频| 精品国产91久久久| 国产在线98福利播放视频| 日韩成人av网| 91精品啪aⅴ在线观看国产| 国产视频自拍一区| 久久九九全国免费精品观看| 亚洲欧美激情另类校园| 狠狠色狠狠色综合日日小说| 国产97色在线|