[原创]Zabbix3.4_API的python示例
说明:
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示例的更多相关文章
- python 示例代码1
第一章 python基础一 在此不再赘述为什么学习python这门编程,网上搜索一箩筐.我在此仅说一句python的好,用了你就会爱上它. 本python示例代码1000+带你由浅入深的了解pyth ...
- python 示例代码3
示例3:Python获取当前环境下默认编码(字符编码demo1.py) 字符编码,python解释器在加载py文件中的代码时,会对内容进行编码(默认ASCII),windows系统默认编码为GBK,U ...
- 安装zeromq以及zeromq的python示例
下载ZeroMq: wget https://github.com/zeromq/zeromq4-1/releases/download/v4.1.5/zeromq-4.1.5.tar.gz 解压: ...
- 【原创】编写多线程Python爬虫来过滤八戒网上的发布任务
目标: 以特定语言技术为关键字,爬取八戒网中网站设计开发栏目下发布的任务相关信息 需求: 用户通过设置自己感兴趣的关键字或正则表达式,来过滤信息. 我自己选择的是通过特定语言技术作为关键字,php.j ...
- [原创]一种基于Python爬虫和Lucene检索的垂直搜索引擎的实现方法介绍
声明:本文首发在博客园晨星落羽,Shulin_Cao和lvmememe首页,转载请注明出处. 前言 2016.5到2017.5,我们三人(lvmememe,Shulin_Cao,晨星落羽)共同完成了一 ...
- Python示例
http request:put # 定义函数:refresh segement # curl -X PUT -s --user "****:*****" -H 'Content- ...
- C++调Python示例(转载)
C++调Python,代码粘贴如下: #include <iostream> #include <Python.h> using namespace std; void Hel ...
- 【原创】cython and python for kenlm
未经允许不可转载 Kenlm相关知识 Kenlm下载地址 kenlm中文版本训练语言模型 如何使用kenlm训练出来的模型C++版本 关于Kenlm模块的使用及C++源码说明 加载Kenlm模块命令 ...
- zabbix3.4用Python脚本Excel批量导入主机
1.安装xlrd读取Excel文件 1.1. 下载setuptools-38.2.4.zip,上传至zabbix服务器解压安装,下载地址:https://pypi.python.org/package ...
随机推荐
- So Good They Can't Ignore You
总体而言,这本书的作者的观点就是,你只有做好了,才会有兴趣,而不是一开始就找可能并不存在的所谓兴趣——好多人就败在不停地找这么一个根本就不存在的兴趣.这个观点简直就是拯救那些乔布斯的粉丝:Follow ...
- Android之Log封装
blog原文地址:http://yuxingxin.com/2015/10/26/AndroidLog/ Github:https://github.com/fallblank/CodeEssay
- Delphi 编写ActiveForm窗体工程知识和样例(开发浏览器客户端应用程序)(有详细步骤)
一.基础知识介绍: 1.ActiveForm的基础知识介绍: 在Delphi中,ActiveForm是封装了Delphi Form的一种ActiveX控件.ActiveForm其实是一种标准的Delp ...
- 企业级架构 MVVM 模式指南 (WPF 和 Silverlight 实现) 译(1)
前言对于WPF和Silverlight来讲,MVVM是微软设计师和业内专家高度推荐的非常棒的一种设计模式.本书会探讨MVVM设计模式的一些自身缺陷以及为什么MVVM还不能成为行业内的标准设计模式.这会 ...
- 关于qtcreator+vs2008+CDB调试太卡的问题研究(载入符号表,以及VS调试器的注册表信息)
在刚接触Qt时,对于较大的项目,用qtcreator + vs + cdb 调试时,启动很慢并且单步运行时也经常会出现卡住半分钟以上的情况,一直没有解决.在需要debug的时候大多会在vs2008上安 ...
- linux下编译qt5.6.0静态库(使用./configure --help来看看都有哪些参数。超详细,有每一个模块的说明。如果改变了安装的目录,需要到安装目录下的bin目录下创建文件qt.conf)(乌合之众)good
linux下编译qt5.6.0静态库 linux下编译qt5.6.0静态库 configure生成makefile 安装选项 Configure选项 第三方库: 附加选项: QNX/Blackberr ...
- Windows 7 频繁提示:计算机的内存不足
最近由于同时打开的程序比较多,Windows 7 频繁提示:计算机的内存不足,如下图: 问题原因: 经过一番尝试,得出一个大概的结论:当虚拟内存空间的大小小于物理内存空间的大小时,一旦程序开的太多,物 ...
- 使用SqlSugar封装的数据层基类
首先简单封装了个DbContext public class DbContext { #region 属性字段 private static string _connectionString; /// ...
- 初探 C# 8 的 Nullable Reference Types
溫馨提醒:本文提及的 C# 8 新功能雖已通過提案,但不代表將來 C# 8 正式發布時一定會納入.這表示我這篇筆記有可能白寫了,也表示您不必急著瞭解這項新功能的所有細節,可能只要瞄一下底下的「概要」說 ...
- MFC中的模态对话框与非模态对话框,模态对话框测试
http://blog.csdn.net/u010839382/article/details/52972427 http://blog.csdn.net/u010839382/article/det ...