说明:
1.python版本为:python2.7
2.zabbix版本为:zabbix3.4
3.通过python脚本调用zabbix的api接口可以实现批量增删改查主机的信息。
示例如下:
#-*- coding:utf-8 -*- import requests, json #初始化参数
server_url = "http://zabbix3.test.com/api_jsonrpc.php"
header = {"Content-Type": "application/json"}
username = "Admin"
password = "passwd123" #登录zabbix并获取auth的token
login = {
"jsonrpc" : "2.0",
"method" : "user.login",
"params": {
'user': ""+username+"",
'password': ""+password+"",
},
"auth" : None,
"id" : 0,
}
auth = requests.post(server_url, data=json.dumps(login), headers=(header))
auth = auth.json() #跟进ip地址获取主机的hostid
host_get = {
"jsonrpc":"2.0",
"method":"host.get",
"params":{
"output":["hostid","name"],
"filter":{"ip":["192.168.5.1","192.168.5.2"]}
},
"auth":""+auth['result']+"",
"id":1,
}
hostid_get = requests.post(server_url, data=json.dumps(host_get), headers=(header))
hostid_get = hostid_get.json()
hostid = hostid_get['result'][0]['hostid']
print hostid,hostid_get['result'][1]['hostid'] #根据组名获取groupid
group_get = {
"jsonrpc": "2.0",
"method": "hostgroup.get",
"params": {
"output": "extend",
"filter": {
"name": [
"测试组"
]
}
},
"auth":""+auth['result']+"",
"id": 1
}
groupid_get = requests.post(server_url, data=json.dumps(group_get), headers=(header))
groupid_get = groupid_get.json()
groupid = groupid_get['result'][0]['groupid']
print groupid #跟进模板名来获取templateid
template_get = {
"jsonrpc": "2.0",
"method": "template.get",
"params": {
"output": "extend",
"filter": {
"host": [
"Template OS Linux",
]
}
},
"auth":""+auth['result']+"",
"id": 1
}
templateid_get = requests.post(server_url, data=json.dumps(template_get), headers=(header))
templateid_get = templateid_get.json()
templateid = templateid_get['result'][0]['templateid']
print templateid #跟进proxy名获取proxyid
proxy_get = {
"jsonrpc": "2.0",
"method": "proxy.get",
"params": {
"output": "extend",
"selectInterface": "extend",
"filter": {
"host": [
"Zabbix-proxy-test",
]
}
},
"auth": ""+auth['result']+"",
"id": 1
}
proxy_get_id = requests.post(server_url, data=json.dumps(proxy_get), headers=(header))
proxy_get_id = proxy_get_id.json()
proxyid = proxy_get_id['result'][0]['proxyid']
print proxyid #定义并添加一个主机到zabbix,指定组,模板,host和name名不支持中文
host_create = {
"jsonrpc": "2.0",
"method": "host.create",
"params": {
"host": "192.168.5.1",
"name": "this is a test-192.168.5.1",
"interfaces": [
{
"type": 1,
"main": 1,
"useip": 1,
"ip": "192.168.5.1",
"dns": "",
"port": "10050"
}
],
"groups": [
{
"groupid": ""+groupid+""
}
],
"templates": [
{
"templateid": ""+templateid+""
}
],
"proxy_hostid": ""+proxyid+"",
"inventory_mode": 0
},
"auth":""+auth['result']+"",
"id": 1
}
host_create_id = requests.post(server_url, data=json.dumps(host_create), headers=(header))
host_create_id = host_create_id.json()
print host_create_id #跟进hostid删除主机
host_delete = {
"jsonrpc": "2.0",
"method": "host.delete",
"params": [hostid],
"auth":""+auth['result']+"",
"id": 1
}
delete_id = requests.post(server_url, data=json.dumps(host_delete), headers=(header))
deleteid = delete_id.json()
print deleteid

  

[原创]Zabbix3.4_API的python示例的更多相关文章

  1. python 示例代码1

    第一章 python基础一 ​在此不再赘述为什么学习python这门编程,网上搜索一箩筐.我在此仅说一句python的好,用了你就会爱上它. 本python示例代码1000+带你由浅入深的了解pyth ...

  2. python 示例代码3

    示例3:Python获取当前环境下默认编码(字符编码demo1.py) 字符编码,python解释器在加载py文件中的代码时,会对内容进行编码(默认ASCII),windows系统默认编码为GBK,U ...

  3. 安装zeromq以及zeromq的python示例

    下载ZeroMq: wget https://github.com/zeromq/zeromq4-1/releases/download/v4.1.5/zeromq-4.1.5.tar.gz 解压: ...

  4. 【原创】编写多线程Python爬虫来过滤八戒网上的发布任务

    目标: 以特定语言技术为关键字,爬取八戒网中网站设计开发栏目下发布的任务相关信息 需求: 用户通过设置自己感兴趣的关键字或正则表达式,来过滤信息. 我自己选择的是通过特定语言技术作为关键字,php.j ...

  5. [原创]一种基于Python爬虫和Lucene检索的垂直搜索引擎的实现方法介绍

    声明:本文首发在博客园晨星落羽,Shulin_Cao和lvmememe首页,转载请注明出处. 前言 2016.5到2017.5,我们三人(lvmememe,Shulin_Cao,晨星落羽)共同完成了一 ...

  6. Python示例

    http request:put # 定义函数:refresh segement # curl -X PUT -s --user "****:*****" -H 'Content- ...

  7. C++调Python示例(转载)

    C++调Python,代码粘贴如下: #include <iostream> #include <Python.h> using namespace std; void Hel ...

  8. 【原创】cython and python for kenlm

    未经允许不可转载 Kenlm相关知识 Kenlm下载地址 kenlm中文版本训练语言模型 如何使用kenlm训练出来的模型C++版本 关于Kenlm模块的使用及C++源码说明 加载Kenlm模块命令 ...

  9. zabbix3.4用Python脚本Excel批量导入主机

    1.安装xlrd读取Excel文件 1.1. 下载setuptools-38.2.4.zip,上传至zabbix服务器解压安装,下载地址:https://pypi.python.org/package ...

随机推荐

  1. 所有W版本的函数都在wchar.h文件(_wfopen),和stdlib.h文件(wcstombs),和stdio.h文件(vwprintf)

    C:\Qt\Qt5.6.2\Tools\mingw492_32\i686-w64-mingw32\include\wchar.h C:\Qt\Qt5.6.2\Tools\mingw492_32\i68 ...

  2. mysql远程表链接

    FEDERATED简介 FEDERATED存储引擎是访问远程数据库中的表,在平时开发中可以用此特性来访问远程库中的参数表之类的,还是非常方便的.使用时直接在本地构建一个federated表来链接远程数 ...

  3. 20 个免费开源的 CSS3 用户界面工具包

    ui.css Metro UI CSS Pure CSS jQuery jKit Solid HTML5/CSS3 UI Kit CSS3 UI Kit Alt CSS3 UI Kit MediaLo ...

  4. elasticsearch local debug环境搭建

    最近计划看看elasticsearch的源码,首先得把local debug环境搞定. 下载源码.因为公司产线是5.6.5,所以就下载了5.6.5的代码. 源码编译.先进入到/elasticsearc ...

  5. qt获得本地IP的方法,qt中域名解析的方法

    本文博客链接:http://blog.csdn.net/jdh99,作者:jdh,转载请注明. 环境:Ubuntu10.04 + Qt4.7.0 Linux获得本地IP的方法,我尝试了两种 1.用QH ...

  6. 解除.NET中虚拟路径的疑惑

    今天部署产品时,发现一个涉及到路径错误的bug,在开发环境下都OK,但是到了测试环境中却一直报错,经过一番排查,原来错误出在了HttpContext.Current.Server.MapPath这个方 ...

  7. springmvc登录拦截jsp页面

    web.xml配置 <filter> <filter-name>LoginFilter</filter-name> //编写拦截的类的全类名 <filter- ...

  8. 使用Scrapy爬取图片入库,并保存在本地

    使用Scrapy爬取图片入库,并保存在本地 上 篇博客已经简单的介绍了爬取数据流程,现在让我们继续学习scrapy 目标: 爬取爱卡汽车标题,价格以及图片存入数据库,并存图到本地 好了不多说,让我们实 ...

  9. Spring Cloud Gateway使用

    简介 Spring Cloud Gateway是Spring Cloud官方推出的网关框架,网关作为流量入口,在微服务系统中有着十分重要的作用,常用功能包括:鉴权.路由转发.熔断.限流等. Sprin ...

  10. Spring Boot:整合Shiro权限框架

    综合概述 Shiro是Apache旗下的一个开源项目,它是一个非常易用的安全框架,提供了包括认证.授权.加密.会话管理等功能,与Spring Security一样属基于权限的安全框架,但是与Sprin ...