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( ):
    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\')

 

收藏 打印