添加一个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. java提供类与cglib包实现动态代理

    终于有点空余时间,决定把之前学习的知识点整理一下,备以后复习. 动态代理有三角色:抽象角色,代理角色,真是角色. 第一个记录下java提供的动态代理.即使用Proxy类和InvocationHande ...

  2. ObjectOutputStream

    public class Test { public static void main(String[] args) throws Exception { //writeObject(); readO ...

  3. HTTPS知识小结

    HTTPS知识小结 背景1:TCP握手 internet上的两台机器A,B要建立起HTTP连接了,在这之前要先建立TCP连接,情景大概是这样子的: A:你好,我跟你建立一个TCP好吗? B:好啊. A ...

  4. webpack4使用mode优化开发环境配置

    @subject: webpack mode @author: leinov @date: 2018-11-29 mode webpack的 mode 配置用于提供模式配置选项告诉webpack相应地 ...

  5. 深入出不来nodejs源码-内置模块引入初探

    重新审视了一下上一篇的内容,配合源码发现有些地方说的不太对,或者不太严谨. 主要是关于内置模块引入的问题,当时我是这样描述的: 需要关注的只要那个RegisterBuiltinModules方法,从名 ...

  6. WIN7 下IIS7的rewrite伪静态功能设置方法

    win7系统都自带有iis的功能.关于WIN7下IIS的安装,请参考这里 http://jingyan.baidu.com/article/219f4bf723bcb2de442d38ed.html ...

  7. SQL Server T—SQL 基本编程

    一 定义变量 declare   @变量名   数据类型 例:declare  @a  int              -- 变量名前必须有 @ 二 赋值 set     @变量名 = 值 sele ...

  8. Thinkphp 全选、反选 批量删除

    完整案例 前台 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www ...

  9. Linux常用基本命令[find]用法(1)

    find是个很强大的命令,用法很多. 作用:查找目录下的文件,同时也可以调用其他命令执行相应的操作 用法: find [选项] [路径][操作语句] find [-H] [-L] [-P] [-D d ...

  10. django-templates过滤器

    常用内置过滤器: 过滤器会更改量或便签参数的值: title过滤器: {{ django|title }} 在下列context中 {'django': 'the web framework for ...