6.1 問題
編寫一個get_token.py腳本,實現以下功能:
- 編寫get_token函數
- 該函數接受zabbix服務器url、用戶名和密碼作爲參數
- 函數返回值爲用戶令牌token
6.2 步驟
實現此案例需要按照如下步驟進行。
步驟一:編寫腳本get_token.py,獲取身份令牌
1)從zabbix官方文檔中使用 user.login 方法登錄並獲取身份驗證令牌請求,如圖-8所示:
官方文檔地址如下:
https://www.zabbix.com/documentation/3.4/zh/manual/api/reference/user/login
圖-14
2)編寫get_token.py文件
copytextpop-up
[root@localhost day12]# vim get_token.py
#!/usr/bin/env python3
import requests
import json # python中的dict類型要轉換爲json格式的數據需要用到json庫
#要訪問的網址
url = 'http://192.168.4.2/zabbix/api_jsonrpc.php'
#請求頭部信息
headers = {'Content-Type': 'application/json-rpc'}
# data是從官方文檔處獲得的
data = {
# API使用的JSON-RPC協議的版本; Zabbix API實現JSON-RPC版本2.0
"jsonrpc": "2.0",
"method": "user.login", #調用的API方法
# params將被傳遞給API方法的參數
"params": {
"user": "Admin",
"password": "zabbix"
},
"id": 1 #請求的任意標識符
}
#使用requests發送請求,訪問指定網站,向url發送data請求,r收到的返回響應爲json格式
#將data轉成json格式
r = requests.post(url, headers=headers, data=json.dumps(data))
#將json格式解碼
print(r.json()))
[root@localhost day12]# vim get_token.py
#!/usr/bin/env python3
import requests
import json # python中的dict類型要轉換爲json格式的數據需要用到json庫
#要訪問的網址
url = 'http://192.168.4.2/zabbix/api_jsonrpc.php'
#請求頭部信息
headers = {'Content-Type': 'application/json-rpc'}
# data是從官方文檔處獲得的
data = {
# API使用的JSON-RPC協議的版本; Zabbix API實現JSON-RPC版本2.0
"jsonrpc": "2.0",
"method": "user.login", #調用的API方法
# params將被傳遞給API方法的參數
"params": {
"user": "Admin",
"password": "zabbix"
},
"id": 1 #請求的任意標識符
}
#使用requests發送請求,訪問指定網站,向url發送data請求,r收到的返回響應爲json格式
#將data轉成json格式
r = requests.post(url, headers=headers, data=json.dumps(data))
#將json格式解碼
print(r.json()))
步驟四:測試腳本執行,獲取用戶令牌token
copytextpop-up
[root@localhost day12]# python3 get_token.py
{"jsonrpc": "2.0", "result": "0424bd59b807674191e7d77572075f33", "id": 1}