ZABBIX-API采集(zabbix3.4)

版权声明:知识就是为了传播! 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')

猜你喜欢

转载自blog.csdn.net/weixin_36171533/article/details/85113211