zoukankan      html  css  js  c++  java
  • python使用zabbix的API接口

    一、实验环境

    • python3.6.6
    • zabbix 3.0.9

    二、实验目的

    • 了解Zabbix的API接口格式
    • 通过python实现登陆zabbix服务,获得登陆token
    • 通过python检索zabbix上的所有脚本

    三、实验代码

    import json
    import requests
    
    #zabbix的API地址
    url = 'http://172.12.99.114/zabbix/api_jsonrpc.php'
    
    #zabbix的登陆API接口(python格式)
    data = {
        "jsonrpc": "2.0",
        "method": "user.login",
        "params": {
            "user": "Admin",
            "password": "zabbix"
        },
        "id": 1,
        "auth": None,
    }
    
    #一定要定义请求头的Content-Type为json格式
    headers = {
        'Content-Type': 'application/json-rpc'
    }
    
    #数据json化,zabbix端接收j'son格式
    json_data = json.dumps(data)
    
    #请求zabbix的api的token,及返回的result字段里的内容
    res = requests.post(url,data=json_data,headers=headers)
    
    #收到的内容json-->dict格式
    res_data_dic=json.loads(res.text)
    
    #检测服务端相应的内容里,是否还有key里有result字段
    is_success=res_data_dic.get('result')
    if is_success:
        #reulst对应的value就是token,之后请求其他API接口,带着此token,就不用在重新登陆
        auth_token=is_success
    else:
        print('用户名或者密码错误,错误代码:%s'%res_data_dic.get('error').get('data'))
    
    #定义检索脚本的API的请求报文
    data2={
        "jsonrpc": "2.0",
        "method": "script.get",
        "params": {
            "output": "extend"
        },
        "auth": auth_token,
        "id": 1
    }
    #讲字典转换成j'son格式,用于传输到zabbix服务端
    json_data2 = json.dumps(data2)
    res2 = requests.post(url,data=json_data2,headers=headers)
    
    
    res_data_dic = json.loads(res2.text)
    for line in res_data_dic.get('result'):
        print(line)
    
    #将字典转化成json格式,indent参数使用缩进3,漂亮打印,默认是紧凑排列
    res2_json = json.dumps(res_data_dic,indent=3)
    print(res2_json)

    四、部分截图

  • 相关阅读:
    (6)在树莓派上截屏的方法
    (7)树莓派读物USB摄像头
    (4)给树莓派安装中文输入法Fcitx及Google拼音输入法
    (3)使用Android手机作为树莓派的屏幕
    (2)在树莓派安装运行在Python3上的OpenCV
    相机靶面尺寸和视场角换算
    STM32F103C8T6在Arduino IDE里编程
    项目(二) esp32-cam 网页图像人脸
    开发(一) ardunio环境配置 针对esp32-cam 更多例程
    [转] Compile、Make和Build的区别
  • 原文地址:https://www.cnblogs.com/lisenlin/p/10071101.html
Copyright © 2011-2022 走看看