1. 程式人生 > >(二)Python調用Zabbix api之從入門到放棄——登錄並獲取身份驗證令牌

(二)Python調用Zabbix api之從入門到放棄——登錄並獲取身份驗證令牌

請求 urllib 登錄 login gin json AD 用戶 cati

訪問zabbix api的URL是:

http://x.x.x.x/zabbix/api_jsonrpc.php

x.x.x.x可能是你的IP或者域名


訪問流程概覽:

1、首先登錄

2、認證成功後zabbix server返回一個token

3、帶著這個token去訪問各種數據,做各種操作

4、完畢!


一、用RESTClient進行登錄

技術分享圖片

在json請求的正文中,具有以下屬性:

  • jsonrpc - API使用的JSON-RPC協議的版本; Zabbix API實現JSON-RPC版本2.0;

  • method - 調用的API方法;

  • params - 將被傳遞給API方法的參數;

  • id - 請求的任意標識符;

  • auth -用戶認證令牌; 因為我們還沒有一個,它的設置null。


正確提供憑據後,API返回的響應將包含用戶身份驗證令牌(json格式):

{

"jsonrpc":"2.0",

"result":"140f4524c02e2731dd74c48d29aa5ce8", #這個就是token

"id":1

}


二、使用Python進行登錄

# -*- coding:utf-8 -*-
import urllib2
import json

url = 'http://x.x.x.x/zabbix/api_jsonrpc.php'
header = {'Content-Type': 'application/json'}

req = json.dumps(
    {
        "jsonrpc": "2.0",
        "method": "user.login",
        "params": {
            "user": "Admin",
            "password": "你的密碼"
        },
        "id": 0,
    }
)

def auth():
    r = urllib2.Request(url=url, headers=header, data=req)
    response = urllib2.urlopen(r)
    token = json.loads(response.read())
    print(token)

if __name__ == '__main__':

    auth()

得到的響應:

技術分享圖片

(二)Python調用Zabbix api之從入門到放棄——登錄並獲取身份驗證令牌