zoukankan      html  css  js  c++  java
  • 利用zabbix API 统计一段时间内监控项的均值和峰值

      1 #coding:utf-8
      2 #给定主机IP获取一段时间内cpu的均值和峰值并写入文件(txt,可以跑完后直接把后缀名改为csv以表格形式打开);需要指定IP文件
      3 import requests
      4 import json
      5 import csv
      6 import time
      7 
      8 def get_token():
      9     data = {
     10         "jsonrpc": "2.0",
     11         "method": "user.login",
     12         "params": {
     13             "user": username,
     14             "password": password
     15         },
     16         "id": 0
     17     }
     18     r = requests.get(zaurl, headers=header, data=json.dumps(data))
     19     auth = json.loads(r.text)
     20     return auth["result"]
     21 
     22 def item_get(token, host, itemkey):
     23     data = {
     24         "jsonrpc": "2.0",
     25         "method": "item.get",
     26         "params": {
     27             "host": host,
     28             "search": {
     29                 "key_": itemkey
     30             },
     31         },
     32         "auth": token,
     33         "id": 1
     34     }
     35 
     36     request = requests.post(zaurl, data=json.dumps(data), headers=header)
     37     dict = json.loads(request.content)
     38 #    print(dict)
     39     return dict['result'][0]['itemid']
     40 
     41 def getdata(token,itemid, start, stop):
     42     data = {
     43         "jsonrpc": "2.0",
     44         "method": "history.get",
     45         "params": {
     46             "output": "extend",
     47             "itemids": itemid,
     48             "history": 0,
     49             "time_from":start,
     50             "time_till":stop
     51         },
     52         "id": 2,
     53         "auth": token,
     54 
     55     }
     56     request = requests.post(zaurl, headers=header, data=json.dumps(data))
     57     dict = json.loads(request.content)
     58     print(dict)
     59     return dict['result']
     60 
     61 def timecovert(stringtime):
     62     timeArray = time.strptime(stringtime, "%Y-%m-%d %H:%M:%S")
     63     timeStamp = int(time.mktime(timeArray))
     64     return timeStamp
     65 
     66 
     67 
     68 if __name__ == "__main__":
     69     zaurl = "http://xx.xx.xx.xx/zabbix/api_jsonrpc.php"
     70     header = {"Content-Type": "application/json"}
     71     username = "xxxx"
     72     password = "xxxx"
     73     hostfile="ip.txt"
     74     token = get_token()
     75     starttime = "2019-10-27 00:00:00"
     76     stoptime = "2019-10-29 00:00:00"
     77     start = timecovert(starttime)
     78     stop = timecovert(stoptime)
     79 #生成一个txt文件
     80     datafile = "D:生产工作IP\data.txt"
     81     fdata = open(datafile,'w')
     82     with open(hostfile, "r") as f:
     83         f1 = f.readlines()
     84         for ips in f1:
     85             host = ips.replace('
    ', '').strip()
     86             # 修改参数
     87 #以下例子为cpu
     88             itemkey = "system.cpu.util[,user]"]"
     89             itemid = item_get(token, host, itemkey)
     90             data = getdata(token,itemid,start,stop)
     91             if data:
     92                 valuelist = []
     93                 for i in data:
     94                     valuelist.append(float(i["value"]))
     95                 avge = sum(valuelist)/len(valuelist)
     96                 max1 = max(valuelist)
     97                 fdata.write(host + ',' + str(round(avge,2)) + ',' + str(round(max1,2)) + '
    ')
     98 #                print (host, avge, max1)
     99             else:
    100                 print (host)
    101     fdata.close()
  • 相关阅读:
    用户自定义异常
    触发异常
    第一阶段冲刺终
    第一阶段冲刺七
    第一阶段冲刺六
    第一阶段冲刺五
    第一阶段冲刺四
    Sufficient Statistic (充分统计量)
    DAG-GNN: DAG Structure Learning with Graph Neural Networks
    Masked Gradient-Based Causal Structure Learning
  • 原文地址:https://www.cnblogs.com/gy99/p/11763003.html
Copyright © 2011-2022 走看看