zoukankan      html  css  js  c++  java
  • pyzabbix 接口使用

    pyzabbix github地址: https://github.com/lukecyca/pyzabbix

    zabbix官方接口: https://www.zabbix.com/documentation/4.0/zh/manual/api

     1 from pyzabbix import ZabbixAPI
     2 from zabbixApi.api.constP import ZABBIX_SERVER, USER, PASSWD
     3 """
     4 模块说明:直接调用zabbix的函数集合
     5 """
     6 
     7 def loginZabbix():
     8     '''登陆zabbix,返回登陆对象'''
     9     user = ZabbixAPI(ZABBIX_SERVER)
    10     user.login(USER, PASSWD)
    11     return user
    12 
    13 def hostAllInfo(user, host_name):
    14     '''根据主机名,返回该主机的所有信息'''
    15     host = user.host.get(search={"name": host_name}, output="extend")
    16     if len(host) != 0:
    17         return host
    18     else:
    19         return None
    20 
    21 def hostIdInfo(user, host_name):
    22     '''根据主机名,返回该主机id'''
    23     host_id = user.host.get(search={"name": host_name}, output=["hostid"])
    24     if len(host_id) != 0:
    25         return host_id[0]["hostid"]
    26     else:
    27         return None
    28 
    29 def hostItemAllInfo(user, host_name, item):
    30     '''根据主机名和监控key,返回该监控项的数据'''
    31     item =  user.item.get(host=host_name, search={"key_": item}, output="extend")
    32     if len(item) != 0:
    33         return item
    34     else:
    35         return None
    36 
    37 def hostItemIdInfo(user, host_name, item):
    38     '''根据主机名和监控key,返回该监控项的数据'''
    39     item_id = user.item.get(host=host_name, search={"key_": item}, output=["itemid"])
    40     if len(item_id) != 0:
    41         return item_id[0]["itemid"]
    42     else:
    43         return None
    44 
    45 def timeProblemAllInfo(user, time_from):
    46     '''获取某个时间点后面产生的告警问题'''
    47     # problem.get的time_from用的是"YY-MM-DD HH:MM:SS"
    48     return user.problem.get(time_from=time_from, output="extend")
    49 
    50 def hostTimeProblemAllInfo(user, host_name, time_from):
    51     '''查找某主机在某个时间点后面产生点告警问题'''
    52     # problem.get的time_from用的是"YY-MM-DD HH:MM:SS"
    53     host_id = hostIdInfo(user, host_name)
    54     if host_id != None:
    55         return user.problem.get(hostids=host_id, time_from=time_from, output="extend")
    56     else:
    57         return "该主机已被删除"
    58 
    59 def timeAlertAllInfo(user, time_from):
    60     '''获取某个时间点后面产生点告警问题'''
    61     alert = user.alert.get(time_from=time_from, output="extend")
    62     if len(alert) != 0:
    63         return alert
    64     else:
    65         return None
    66 
    67 def hostTimeAlertAllInfo(user, host_name, time_from):
    68     '''查找某主机在某个时间点后面产生点告警问题'''
    69     # alert.get的time_from用的是时间戳(1586012065)格式!!!
    70     host_id = hostIdInfo(user, host_name)
    71     if host_id != None:
    72         return user.alert.get(hostids=host_id, time_from=time_from, output="extend")
    73     else:
    74         return "该主机已不存在"
    75 
    76 def hostTimeHistoryInfo(user, host_name, item, time_from):
    77     '''获取某主机点某个监控项在某个时间点后产生点历史数据'''
    78     # history.get的time_from用的是时间戳(1586012065)格式!!!
    79     host_id = hostIdInfo(user, host_name)
    80     item_id = hostItemIdInfo(user, host_name, item)
    81     if host_id != None and item_id != None:
    82         return user.history.get(hostids=host_id, itemids=item_id, time_from=time_from)
    83     else:
    84         return "该主机活监控项不存在"
  • 相关阅读:
    js倒计时的实现
    用Math获取随机数的方法抽奖
    计算器的实现
    放大镜
    关于轮播图,我知道的不多。
    jqery标签页
    jQuery鼠标划入划出
    说说手机页面
    简单说说tab标签页和轮播图
    前端中的那些小事
  • 原文地址:https://www.cnblogs.com/wangsl1204/p/12640033.html
Copyright © 2011-2022 走看看