python 通过zabbix api获得所有主机的ip
#!/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)
python 通过zabbix api获得所有主机的ip的更多相关文章
- python 调用zabbix api接口实现主机的增删改查
python程序调用zabbix系统的api接口实现对zabbix_server端主机的增删改查,使用相关功能时候,需要打开脚本中的相关函数. 函数说明: zabbixtools() 调用zabbi ...
- python 调用zabbix api实现查询主机信息,输出所有主机ip
之前发现搜索出来的主机调用zabbix api信息都不是那么明确,后来通过zabbix官方文档,查到想要的api信息,随后写一篇自己这次项目中用到的api. #!/usr/bin/env python ...
- Python调用zabbix API批量添加主机 (读取Excel)
本文转载自:http://blog.mreald.com/178 Zabbix可以通过自发现添加主机,不过有时候不准确,通过API添加会更加准确! 脚本使用的跟zabbix相关的内容.参考的是zabb ...
- 关于python调用zabbix api接口
因公司业务需要,引进了自动化运维,所用到的监控平台为zbbix3.2,最近正在学习python,计划使用python调用zabbix api接口去做些事情,如生成报表,我想最基本的是要取得zabbix ...
- 03: zabbix API接口 对 主机、主机组、模板、应用集、监控项、触发器等增删改查
目录:Django其他篇 01: 安装zabbix server 02:zabbix-agent安装配置 及 web界面管理 03: zabbix API接口 对 主机.主机组.模板.应用集.监控项. ...
- Python通过Zabbix API获得数据
Zabbix API查询:https://www.zabbix.com/documentation/2.0/manual/appendix/api/api import json,urllib2 fr ...
- 使用Python调用Zabbix API
Zabbix API官方文档: https://www.zabbix.com/documentation/4.0/zh/manual/api 1.向 api_jsonrpc.php 发送HTTP_PO ...
- 通过Zabbix API实现对主机的增加(无主机资产的添加和带主机资产的添加)、删除、获取主机id、获取模板id、获取组id
config.yaml存储zabbix的信息(主要包括zabbix server的url .请求头部.登陆的用户名密码) Zabbix_Config: zabbix_url: http://192.1 ...
- Python 操作Zabbix API 获取ERROR级别告警信息并打印
1.需求:有一个语音合成播报项目,要实时获取zabbix的ERROR级别以上告警信息,将该信息合成语音播报出去.(合成语音及播报已经完成) 2.现实:整理zabbix告警级别,将不太重要的告警放到ER ...
随机推荐
- java IO 类概述表
列举常用的类方便查看,温故知新! byte input byte output character input character output Basic InputStream OutputStr ...
- 并发新构件之Semaphore:信号量
Semaphore :JDK描述,通常用于限制可以访问某些资源(物理或逻辑的)的线程数目.一句话说明了他的作用.信号量有一个虚拟的许可证池,new Semaphore(10):构造一个含有10个许可证 ...
- 关于py中lxml模块的cssselect的小问题
今天在使用lxml进行解析页面的时候遇到了不能解析空格的问题,就是类似于: <div class="aa bb"></div> 使用cssselect('. ...
- undefined reference to `TTF_Init'
如果编译时遇上 undefined reference to `FunctionName' 或是这种类似错误,首先就得检查是不是函数名拼写错误,如果不是,那估计是编译时候有些链接库没加进去 比如这篇上 ...
- 一起感受HTML5和CSS3
Web设计师可以使用HTML4和CSS2.1完成一些很酷的东西.我们可以在不使用陈旧的基于table布局的基础上完成文档逻辑结构并创建内容丰富的网站.我们可以在不使用内联<font>和&l ...
- echart 柱状图背景色设置
方法一: series: [ { name: '1', type: 'bar', itemStyle: {//柱图背景色 color: '#111' }, data: list }, { name: ...
- (Struts2学习系列二)Struts2动态方法调用:指定method属性
紧接着上一篇,在HelloWorldAction.java中添加add和update方法: public class HelloWorldAction extends ActionSupport{ p ...
- 组合,模板,bolck块
如果前面和后面的变量名相同,则后面的变量名会覆盖前面的变量名 模板可以多次使用,只需要将is指定template的name,就可以重复使用该模板,只需要将不同的item值赋值给data就可以实现. 可 ...
- 笔记49 在Spittr应用中整合Hibernate
在前边构建的Spittr应用中整合Hibernate 由于最近所学的hibernate都是使用xml方式进行配置的,所以在与以Java方式配置的Spittr应用结合时就会出现一些小问题,在此进行总结. ...
- SCOI 2014 new :未来展望
后期计划(可能延续到noip) 后期计划这种东西..唉...经历了三周的停课生涯,我似乎已经找到了一种状态,就是我一直期盼的状态,然后为了不落泪退役,具体是这样的: 由于现在的学习任务不太紧张了,所以 ...