python 调用zabbix api实现查询主机信息,输出所有主机ip
之前发现搜索出来的主机调用zabbix api信息都不是那么明确,后来通过zabbix官方文档,查到想要的api信息,随后写一篇自己这次项目中用到的api。 #!/usr/bin/env python
#coding:utf8
import requests
import json headers = {'Content-Type': 'application/json-rpc'}
server_ip = '10.37.149.109' url = 'http://%s/zabbix/api_jsonrpc.php' %server_ip
#获取token
def getToken(username,passwd): #url = 'http://%s/zabbix/api_jsonrpc.php'%server_ip #headers = {'Content-Type': 'application/json-rpc'} username = 'admin'
passwd = 'zabbix'
data = {
"jsonrpc": "2.0",
"method": "user.login",
"params": {
"user": username,
"password": passwd
},
"id": 0 } request = requests.post(url=url,headers=headers,data=json.dumps(data))
dict = json.loads(request.text)
return dict['result']
# 从api获取主机信息,
def getHosts(token_num):
data = {
"jsonrpc": "2.0",
"method": "host.get",
"params": {
"output": [
"hostid",
"host"
],
"selectInterfaces": [
"interfaceid",
"ip"
]
},
"id": 2,
"auth": token_num, } request = requests.post(url=url,headers=headers,data=json.dumps(data))
dict = json.loads(request.content)
#print dict['result']
return dict['result']
#整理信息,输出想要的信息,组合成字典,我这边提出ip。
def getProc(data):
dict = {}
list = data
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__": #server_ip = '10.37.149.109'
username = 'admin'
passwd = 'zabbix'
token_num = getToken(username,passwd)
data = getHosts(token_num)
hosts = getProc(data)
ip_list = getData(hosts)
getGroup(ip_list)
python 调用zabbix api实现查询主机信息,输出所有主机ip的更多相关文章
- 关于python调用zabbix api接口
因公司业务需要,引进了自动化运维,所用到的监控平台为zbbix3.2,最近正在学习python,计划使用python调用zabbix api接口去做些事情,如生成报表,我想最基本的是要取得zabbix ...
- python 调用zabbix api接口实现主机的增删改查
python程序调用zabbix系统的api接口实现对zabbix_server端主机的增删改查,使用相关功能时候,需要打开脚本中的相关函数. 函数说明: zabbixtools() 调用zabbi ...
- 使用Python调用Zabbix API
Zabbix API官方文档: https://www.zabbix.com/documentation/4.0/zh/manual/api 1.向 api_jsonrpc.php 发送HTTP_PO ...
- Python调用zabbix API批量添加主机 (读取Excel)
本文转载自:http://blog.mreald.com/178 Zabbix可以通过自发现添加主机,不过有时候不准确,通过API添加会更加准确! 脚本使用的跟zabbix相关的内容.参考的是zabb ...
- python调用zabbix接口实现Action配置
要写这篇博客其实我的内心是纠结的,老实说,我对zabbix的了解实在不多.但新公司的需求不容置疑,当我顶着有两个头大的脑袋懵懵转入运维领域时,面前摆着两百多组.上千台机器等着写入zabbix监控的需求 ...
- Python调用win32 API绘制正弦波
Python调用win32 API新建窗口与直接创建窗口的流程相同 流程:注册窗口→创建窗口→显示窗口→更新窗口→消息循环 代码: # -*- coding: utf-8 -*- import win ...
- 使用Python调用Flickr API抓取图片数据
Flickr是雅虎旗下的图片分享网站,上面有全世界网友分享的大量精彩图片,被认为是专业的图片网站.其API也很友好,可以实现多种功能.这里我使用了Python调用其API获得了大量的照片数据.需要注意 ...
- 基于python调用libvirt API
基于python调用libvirt API 1.程序代码 #!/usr/bin/python import libvirt import sys def createConnection(): con ...
- python调用mediainfo工具批量提取视频信息
写了2个脚本,分别是v1版本和v2版本 都是python调用mediainfo工具提取视频元数据信息 v1版本是使用pycharm中测试运行的,指定了视频路径 v2版本是最终交付给运营运行的,会把v2 ...
随机推荐
- 学习笔记44—Linux下安装freesurfer
第一步:安装ubuntu (略过) 第二步:下载freesurfer:从freesurfer的官方网站上下载:http://surfer.nmr.mgh.harvard.edu/fswiki/Down ...
- QT绘制饼图
QT版本:QT5.6.1 QT绘制饼图,出问题的代码如下 void DrawPieDialog::paintEvent(QPaintEvent *event) { float startAngle=0 ...
- php安装soap等扩展的方式: 已经安装了php却发现少安装了一下扩展
php安装soap等扩展的方式: 已经安装了php却发现少安装了一下扩展 1.首先确认下php.ini的安装位置 我的安装目录是: /usr/local/php 一般位置: /usr/local/ph ...
- computational biology | Bioinformatician | 开发者指南
对自己的定位要明确,不要定义为码农,我是computational biologist. 入了这一行就不要三心二意,这基本注定你未来10年都在干这个,就算要转行也要先把这个做好.其实大多数人最喜欢的肯 ...
- 20181011xlVba提取邮箱手机号码
Sub TransferData() AppSettings Dim StartTime As Variant Dim UsedTime As Variant StartTime = VBA.Time ...
- codeforces736b Taxes (Codeforces Round #382 (Div. 1))
题意:纳税额为金额的最大因数(除了本身).为了逃税将金额n分为n1+n2+.......问怎样分纳税最少. 哥德巴赫猜想: 任一大于2的偶数都可写成两个质数之和. 质数情况: 任何大于5的奇数都是三个 ...
- 无线网络覆盖-java中,用Math.sqrt()时,必须要注意小数问题
时间限制:3000 ms | 内存限制:65535 KB 难度:3 描述 我们的乐乐同学对于网络可算得上是情有独钟,他有一个计划,那就是用无线网覆盖郑州大学. 现在学校给了他一个机会,因此他要购买 ...
- 静默安装/ 普通安装与root权限获取相关
静默安装 有时候使用第三方的插件时我们需要静默安装其提供的apk包,静默安装时我们需要获取root权限,如下代码 Process process = Runtime.getRuntime().exec ...
- centos 安装 和 linux 简单命令
1. centos 安装 参照:https://www.cnblogs.com/tiger666/articles/10259102.html 安装过程注意点: 1. 安装过程中的选择安装Basic ...
- chmod 没有x权限怎么办
解决方法1: # /lib64/ld-linux-x86-64.so.2 /bin/chmod 755 /bin/chmod //linux动态命令库 解决方法2:方法2提到的两种方法形 ...