文档章节

python 通过zabbix api获得所有主机的ip

o
 osc_isezqdgg
发布于 2019/09/18 14:43
字数 253
阅读 5
收藏 0

精选30+云产品,助力企业轻松上云!>>>

 

 

#!/usr/bin/env python3

#coding=utf-8

import json
import requests
#from urllib import requests, parse,error

# based url and required header

#url = "http://sg-zabbix.upliveapp.com/zabbix/api_jsonrpc.php"

class zabbixapi:
'''获得token'''
def __init__(self):
self.url = 'http://xxxxxxxx/zabbix/api_jsonrpc.php'
self.headers = {'Content-Type': 'application/json'}
auth = {
"jsonrpc": "2.0",
"method": "user.login",
"params": {
"user": "xxxxx", ###验证
"password": "xxxxx"
},
"id": 1,
"auth": None,
}
response = requests.post(self.url, data=json.dumps(auth), headers=self.headers)
self.authid = json.loads(response.text)['result']
#print(self.authid)

###得到所有服务器和ip信息
def get_hosts(self):
#print("12313")
neirong={
"jsonrpc": "2.0",
"method": "host.get",
"params": {
"output": [
"hostid",
"host"
],
"selectInterfaces": [
"interfaceid",
"ip"
]
},
"id": 2,
"auth": self.authid
}
data = json.dumps(neirong)
#print(data)
response = requests.post(self.url, data=json.dumps(neirong), headers=self.headers)
dict = json.loads(response.content)
#print(dict['result'])
data = dict['result']
return dict['result']
#print(response.text)
###整理信息,输出想要的信息,组合成字典
def getProc(data):
dict = {}
list = data
print(list)
for i in list:
host = i['host']
inter = i['interfaces']
for j in inter:
ip = j['ip']
dict[host] = ip

return dict


# 排序ip列表
def getData(dict):
data = dict
ip_list = []
for key in data.keys():
ip = data[key]
ip_list.append(ip)
ip_list = list(set(ip_list))
ip_list.sort()
return ip_list


# 整理输出ip
def getGroup(ip_list):
ip_group = {}
ips = ip_list
for i in ips:
print(i)

if __name__ == "__main__":
p = zabbixapi()
data = p.get_hosts()
hosts = getProc(data)
#print(hosts)
ip_list = getData(hosts)
getGroup(ip_list)
o
粉丝 0
博文 500
码字总数 0
作品 0
私信 提问
加载中
请先登录后再评论。
企业——使用API在Zabbix监控中实现查看、创建、删除监控主机的功能

一.什么是API?   API(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问...

osc_vylqfbau
2019/04/17
1
0
python调用zabbix api接口实时展示数据

python调用zabbix api接口实时展示数据 关于API zabbix拥有完善的API,基于JSON RPC提供资产,主机,主机组,监控项,告警等方面的接口。在做运维自动化时,需要用API功能对zabbix二次开发。...

linzhuangrong
2019/05/20
1K
1
结合Zabbix与Ansible打造自动化数据库监控体系

本文根据dbaplus社群第162期线上分享整理而成。 随着业务的飞速发展,数据库服务器量级飞速增长,比如Oracle、MySQL、Redis、MongoDB的使用更加普及,对数据库运维人员的要求也越来越高,构建...

刘宇
2018/10/10
0
0
第二个运维平台项目

把之前的运维平台重新整理和改写,主要实现的思路是从服务器采购开始,采购之后,从网络部申请得到IP地址;通过厂商那里得到的MAC地址直接定制装机,装机时候直接指定IP地址;后期硬件信息采...

小罗ge11
2016/09/01
0
0
zabbix自动化监控8(2.4)

-----------------通过API的方式添加 参考:https://www.zabbix.com/documentation/2.4/manual/api/reference/user/login 1.验证 curl -s -X POST -H 'Content-Type:application/json' -d ' ......

fxl风
2018/06/20
0
0

没有更多内容

加载失败,请刷新页面

加载更多

智慧旅游背景下的景区新模式建设方案研讨

景区经营权管理方法实践、县域旅游基本模式以及智慧旅游一直是业内探究的关键。学术界对景区经营权出让探究比较多,如阎友兵探究了根据实物期权基础理论的景区经营权出让期限制度分配;郭淳凡...

osc_rezr8v4k
25分钟前
5
0
详解区块链是什么!KiBiEx加密货币交易所~

区块链是一个信息技术领域的术语。从本质上讲,它是一个共享数据库,存储于其中的数据或信息,具有“不可伪造”“全程留痕”“可以追溯”“公开透明”“集体维护”等特征。基于这些特征,区块...

osc_3361hjxk
26分钟前
11
0
详解区块链是什么!KiBiEx加密货币交易所~

区块链是一个信息技术领域的术语。从本质上讲,它是一个共享数据库,存储于其中的数据或信息,具有“不可伪造”“全程留痕”“可以追溯”“公开透明”“集体维护”等特征。基于这些特征,区块...

osc_3ytpwpyb
28分钟前
12
0
详解区块链是什么!KiBiEx加密货币交易所~

区块链是一个信息技术领域的术语。从本质上讲,它是一个共享数据库,存储于其中的数据或信息,具有“不可伪造”“全程留痕”“可以追溯”“公开透明”“集体维护”等特征。基于这些特征,区块...

osc_x4ot1joy
30分钟前
9
0
如何强制gradle重新下载依赖项? - How can I force gradle to redownload dependencies?

问题: 如何告诉gradle从存储库重新下载依赖项? 解决方案: 参考一: https://stackoom.com/question/uute/如何强制gradle重新下载依赖项 参考二: https://oldbug.net/q/uute/How-can-I-fo...

fyin1314
32分钟前
13
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部