添加一个Host Name=Mail CAS_1.1,IP=10.16.3.4的主机,并加入组groupID=30,连接模板templateID=10132.

# -*- coding: UTF-8 -*-
import urllib2,json,cookielib,urllib
from urllib2 import Request, urlopen, URLError, HTTPError
global auth_code,zabbix_url,zabbix_header
#zabbix接口地址、登录地址、图片地址
zabbix_url="http://10.16.2.4/zabbix/api_jsonrpc.php" zabbix_header = {"Content-Type":"application/json"}
zabbix_user = "admin"
zabbix_pass = "password"
auth_code = ""
auth_data = json.dumps({
"jsonrpc":"2.0",
"method":"user.login",
"params":
{
"user":zabbix_user,
"password":zabbix_pass
},
"id":0
}) request = urllib2.Request(zabbix_url,auth_data)
for key in zabbix_header:
request.add_header(key,zabbix_header[key])
try:
result = urllib2.urlopen(request)
except HTTPError, e:
print 'The server couldn\'t fulfill the request, Error code: ', e.code
except URLError, e:
print 'We failed to reach a server.Reason: ', e.reason
else:
response=json.loads(result.read())
#print response
result.close() #判断SESSIONID是否在返回的数据中
if 'result' in response:
auth_code=response['result']
else:
print response['error']['data'] def Http_access(data):
request = urllib2.Request(zabbix_url,data)
for key in zabbix_header:
request.add_header(key,zabbix_header[key])
result = urllib2.urlopen(request) response = json.loads(result.read())
# print result.read()
# print response
result.close()
if len(response['result']) > 0:
return response['result'] #配置需要添加的host信息(Host Name,IP,groupID,templateID)
def add_hostdata():
if len(auth_code) <> 0:
host_data = json.dumps({
"jsonrpc": "2.0",
"method": "host.create",
"params": {
"host": "Mail CAS_1.41", #Host Name
"interfaces": [
{
"type": 1,
"main": 1,
"useip": 1,
"ip": "10.16.3.4", #Host IP
"dns": "",
"port": ""
}
],
"groups": [
{
"groupid": "" #group-live-uxdata-windows
}
],
"templates": [
{
"templateid": "" #template ID
}
]
},
"auth": auth_code,
"id": 1
})
return host_data hostdata =add_hostdata()
print Http_access(hostdata) #添加主机
#返回信息:{u'jsonrpc': u'2.0', u'result': {u'hostids': [u'10430']}, u'id': 1}

获得名为template-windows-basic的模板的templateID:

def Http_access(data):
request = urllib2.Request(zabbix_url,data)
for key in zabbix_header:
request.add_header(key,zabbix_header[key])
result = urllib2.urlopen(request) response = json.loads(result.read())
# print result.read()
#print response
result.close()
if len(response['result']) > 0:
return response['result'] #定义模板名称
def get_template():
template_data = json.dumps({
"jsonrpc": "2.0",
"method": "template.get",
"params": {
"output": "extend",
"filter": {
"host": [
"template-windows-basic" #定义模板名称
]
}
},
"auth": auth_code,
"id": 1
})
return template_data templatedata = get_template()
print Http_access(templatedata)[0]['templateid'] #返回值为10132

获取所有template:

def Http_access(data):
request = urllib2.Request(zabbix_url,data)
for key in zabbix_header:
request.add_header(key,zabbix_header[key])
result = urllib2.urlopen(request) response = json.loads(result.read())
# print result.read()
#print response
result.close()
if len(response['result']) > 0:
return response['result'] #过滤所有模板
def get_template():
template_data = json.dumps({
"jsonrpc": "2.0",
"method": "template.get",
"params": {
"output": "extend"
},
"auth": auth_code,
"id": 1
})
return template_data templatedata = get_template() for template in Http_access(templatedata):
print template['templateid'],template['host']

返回如下:

10130 template-web-basic
10131 template-windows-basic2
10132 template-windows-basic
10133 template-windows-Controller1
10134 template-Hyper-V

......

......

Zabbix 添加主机,获取模板templateID的更多相关文章

  1. 给zabbix添加percona监控模板

    简单说明一下给zabbix添加的percona的监控模板. 在percona官方网站有说明怎么安装,这里记录下步骤.首先搭建好的zabbix环境. 监控插件连接 : 链接:https://pan.ba ...

  2. zabbix 添加主机成功失败判断

    zabbix 成功添加后: $VAR1 = bless( { 'version' => 0, 'content' => { 'jsonrpc' => '2.0', 'id' => ...

  3. zabbix添加主机后无法显示解决

    第一次添加主机后显示正常,后来删除了主机,重新添加了一下主机再也无法显示主机,很苦恼,原来需要点击重设,

  4. Centos7 Zabbix添加主机、图形、触发器

    制作自定义key zabbix自带模板Template OS Linux (Template App Zabbix Agent)提供CPU.内存.磁盘.网卡等常规监控,只要新加主机关联此模板,就可自动 ...

  5. zabbix添加主机步骤

    创建主机 配置基本信息 配置好后点击添加即可: [root@localhost opt]# systemctl start zabbix-agent [root@localhost opt]# net ...

  6. Zabbix 添加主机

    #1 #2

  7. zabbix客户端的安装、zabbix主被动模式、添加主机模板等、处理页面的中文乱码

    1.zabbix客户端的安装: 如下步骤: wget repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-release-3.2-1.el7.noarch. ...

  8. zabbix 添加 host item

    Zabbix常用术语 host(主机):监控的网络设备,可由IP或DNS名称指定. host Group(主机组):Host的逻辑容器,可以包含主机和模板. Item(监控项):一个特定监控指标的相关 ...

  9. Zabbix添加监控主机

    一.监控server本机 1.查看主机列表 2.启动server主机的zabbix-agent服务 [root@zabbix ~]# systemctl start zabbix-agent.serv ...

随机推荐

  1. Nhibernate + MySQL 类型映射

    用SQLyog工具创建表 然后用自动映射工具NHibernate Mapping Generator对表做自动映射,得到 这个是可视化界面,后面有对应的代码. using System; using ...

  2. 各大APP注册时发送短信验证码是怎么实现的?

    第一步:获得验证码:1.找到相关的表.2.用什么发送,post,get ,ajax,当然ajax首选3.post之前要js先判断是手机号码11位,并且全部都是数字,或者用正则也行.4.用ajax发送数 ...

  3. python 常用算法学习(1)

    算法就是为了解决某一个问题而采取的具体有效的操作步骤 算法的复杂度,表示代码的运行效率,用一个大写的O加括号来表示,比如O(1),O(n) 认为算法的复杂度是渐进的,即对于一个大小为n的输入,如果他的 ...

  4. vue路由管理-保留滚动位置功能、按需加载模块名自定义

    路由管理:保留滚动位置 其实现与组件的keep-alive相关,仅设置了keep-aive的页面,实施保留回退位置能力. keep-alive介绍 作用 把切换出去的组件保留在内存中,可以保留它的状态 ...

  5. 安装mysql时报Missing required library libcc.dll 126

    Missing required library libcc.dll 126 安装一个Cygwin就好了

  6. 获取ip 笔记

    使用命令 Request.UserHostAddress;//IP地址 Request.UserHostName;//用户名. 1. 在ASP.NET中专用属性: 获取服务器电脑名:Page.Serv ...

  7. [C#]System.Timers.Timer(2)

    摘要 之前学习过c#中定时器Timer的基本用法,在使用过程中,有一个问题,一直困扰着自己,就是在初始化定时器的时候,如果设置的interval过小,或者每次执行的业务非常耗时的时候,这时候该怎么处理 ...

  8. 多线程系列(3)任务Task

    虽然使用线程池ThreadPool让我们使用多线程变得容易,但是因为是由系统来分配的,如果想对线程做精细的控制就不太容易了,比如某个线程结束后执行一个回调方法.恰好Task可以实现这样的需求.这篇文章 ...

  9. PHP定界符<<<eof 使用

    PHP是一个Web编程语言,在编程过程中难免会遇到用echo来输出大段的html和javascript脚本的情况,如果用传统的输出方法 ——按字符串输出的话,肯定要有大量的转义符来对字符串中的引号等特 ...

  10. Software-Defined Networking A Comprehensive Survey --阅读_day1

    The Internet has led to the creation of a digital society, where (almost) everything is connected an ...