@Zabbix监控平台调用API接口导出主机及报表

本文介绍了如何通过Python环境配置,编写脚本调用Zabbix API接口来导出主机信息和报表。首先确认Zabbix监控平台上的主机数量,然后详细阐述了Python3环境的配置步骤,接着展示了如何编写Python脚本来查询和导出主机IP及HostID。最后,说明了执行脚本导出Zabbix监控数据和主机报表的流程。
摘要由CSDN通过智能技术生成


在这里插入图片描述

1.zabbix监控平台主机确认

当前已有监控主机11台
http://server_ip/zabbix/api_jsonrpc.php: zabbix的api接口
使用grafana展示也是调用api接口获取数据展示图形

在这里插入图片描述

2.Python环境配置

【python3环境配置】

3.Python编写调用api脚本

Python语言编写调用脚本
python 调用zabbix api实现查询主机信息,输出所有主机ip及hostid

#获取zabbix上所有主机的IP和主机名
#coding:utf-8
import requests
import json
import csv
import time


def get_token():
    data = {
   
        "jsonrpc": "2.0",
        "method": "user.login",
        "params": {
   
            "user": username,
            "password": password
        },
        "id": 0
    }
    r = requests.get(zaurl, headers=header, data=json.dumps(data))
    auth = json.loads(r.text)
    return auth["result"]

def getHosts(token):
    data = {
   
        "jsonrpc": "2.0",
        "method": "host.get",
        "params": {
   
            "output": [
                "hostid",
                "host"
            ],
            "selectInterfaces": [
                "interfaceid",
                "ip"
            ]
        },
        "id": 2,
        "auth": token,

    }

    request = requests.post(zaurl, headers=header, data=json.dumps(data))
    dict = json.loads(request.content)
    print (dict['result'])
    return dict['result']


if __name__ == "__main__":
    zaurl="http://192.168.1.150/zabbix/api_jsonrpc.php"
    header = {
   "Content-Type": "application/json"}
    username = "Admin"
    password = "zabbix"

    token = get_token()
    hostlist = getHosts(token)
    datafile = "zabbix_host_improt.cvs"
    fdata = open(datafile,'w')
    for i in hostlist:
        hostid = i['hostid']
        hostip = i['host']
        fdata.write(hostip + ' ' + hostid + '\n')
    fdata.close()

导出主机信息

shell> cat zabbix_host_improt.cvs 
Zabbix server 10084
192.168.1.50 10435
aecf4d56-ddcd-7eef-b4ee-814af6201ef4 10440
564de793-f192-f439-f242-34e6a043f5dc 10441
sql server 10442
sql server1 10443
mssql02 10444
Test00 10462
Test01 10463
DESKTOP-GNKABFC 10464
nightingale 10465

4.使用zabbix的api接口调用zabbix监控主机

将zabbix_base.py脚本与zabbix_ip.py脚本放在同一个目录下,直接执行zabbix_ip.py即可,具体脚本如下所示

[root@server ~]# mkdir zabbix_host
[root@server ~]# cd zabbix_host
[root@server ~/zabbix_host]# vim zabbix_base.py
[root@server ~/zabbix_host]# vim zabbix_ip.py
[root@server ~/zabbix_host]# python3 zabbix_ip.py       #执行以下脚本即可
11                                                      #导出zabbix上的主机数量
[root@server ~/zabbix_host]# cat zabbix_ip_improt.cvs   #查看导出数据
127.0.0.1        Zabbix server
192.168.1.50        192.168.1.50
192.168.1.50        aecf4d56-ddcd-7eef-b4ee-814af6201ef4
192.168.1.50        564de793-f192-f439-f242-34e6a043f5dc
        sql server
192.168.1.5        sql server1
127.0.0.1        mssql02
114.114.114.114        Test00
114.114.114.115        Test01
192.168.1.1        DESKTOP-GNKABFC
192.168.1.3        nightingale
[root@server ~/zabbix_host]# 

基础api接口脚本编写

shell> vi
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值