版权声明:知识就是为了传播! https://blog.csdn.net/weixin_36171533/article/details/85113211
1,WEB API
2,python Zabbix SDK
1,WEB API
特点:
远程管理zabbix配置
远程检索配置和历史数据
接入方式:
http://ip:port/zabbix/api_jsonrpc.php
采用json-rpc实现
输入和输出是json格式
注意(三选一即可):
http header:
Content-Type:application/json-rpc
Content-Type:application/json
Content-Type:application/jsonrequest
接入流程:
1,传入登录接口参数,参数为json字符串
2,获取返回的token
3,以后的每个请求,需要在参数里加上auth:token
实现方式:python3 pip3 install requests
zabbix_http_api.py :
#coding=utf-8
import requests
import json
class ZabbixAPI(object):
def __init__(self):
self.url = 'http://192.168.68.40/zabbix/api_jsonrpc.php'
self.headers = {'Content-Type': 'application/json-rpc'}
def login(self):
params = {
"jsonrpc": "2.0", #版本号
"method": "user.login", #接口
"params": {
"user": "Admin", #zabbix用户名
"password": "112233qqww" #zabbix密码
},
"id": 1, #当前序列请求的id 不同请求的区分
"auth": None
}
r = requests.post(self.url, data=json.dumps(params), headers=self.headers)
print(r.json())
#将json转成字符串和添加heads
def get_hosts(self):
#运行上面的办法获取token
token = 'e54a44945a32c94651ca29f107461100'
params = {
"jsonrpc": "2.0",
"method": "host.get",
"params": {
"output": [
"hostid",
"host"
],
"selectInterfaces": [
"interfaceid",
"ip"
]
},
"id": 2, #第二个请求方式
"auth": token #上面的token
}
r = requests.get(self.url, data=json.dumps(params), headers=self.headers)
print(r.text)
test = ZabbixAPI() #首次运行
test.get_hosts() #获取token之后运行
2,python Zabbix SDK
安装:pip3 install pyzabbix
#coding=utf-8
from pyzabbix import ZabbixAPI
zapi = ZabbixAPI('http://192.168.68.40/zabbix')
zapi.login('Admin', '123456')
for h in zapi.item.get(output='extend'):
print(h)
带有调试日志:
开启后可以直接输出调试日志:
#coding=utf-8
import sys
import logging
from pyzabbix import ZabbixAPI
#stream = logging.StreamHandler(sys.stdout)
#stream.setLevel(logging.DEBUG)
#
#log = logging.getLogger('pyzabbix')
#log.addHandler(stream)
#log.setLevel(logging.DEBUG)
zapi = ZabbixAPI('http://192.168.68.40/zabbix')
zapi.login('Admin', '123456')