Zabbix 添加主机,获取模板templateID

添加一个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": "10050"
                }
            ],
            "groups": [
                {
                    "groupid": "30" #group-live-uxdata-windows
                }
            ],
            "templates": [
                {
                    "templateid": "10132" #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

......

......

时间: 2024-10-10 00:26:07

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

zabbix添加主机并创建监控模板

主动模式和被动模式 被动模式,服务器端会主动连接客户端获取监控数据,客户端被动地接受,并把数据传递给服务器端主动模式,客户端主动把监控数据汇总然后再汇报给客户端,服务端只负责接收数据当客户端数量非常多的时候,建议使用主动模式,因为服务器不再会去所有客户机上请求回报数据,这样降低服务端的压力当客户端没有公网IP地址时,而又需要监控内网的客户端的时候,这时候适用主动模式,因为客户端能够访问到公网服务器的IP,反过来服务器不能和服务端通信,这就需要客户端把监控数据要主动发给服务端,这里就非常适合适用主

给zabbix添加percona监控模板

简单说明一下给zabbix添加的percona的监控模板. 在percona官方网站有说明怎么安装,这里记录下步骤.首先搭建好的zabbix环境. 监控插件连接 : 链接:https://pan.baidu.com/s/1xHbc_HhmN-XuGGiKrg7nPQ 提取码:i4ku yum安装percona的监控插件(安装在要监控的mysql服务器上) yum install -y percona-zabbix-templates-1.1.8-1.noarch.rpm 安装完成之后会生成如下四

zabbix添加主机时最常见的报错

** 今天在玩zabbix监控的时候,在被监控端装好agent后,添加主机时界面上提示报错Zabbix agent on jiabao is unreachable for 5 minutes查看日志却发现 [root@localhost tmp]# tail -f zabbix_server.log 26115:20190307:235549.064 cannot send list of active checks to "192.168.1.150": host [localho

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

制作自定义key zabbix自带模板Template OS Linux (Template App Zabbix Agent)提供CPU.内存.磁盘.网卡等常规监控,只要新加主机关联此模板,就可自动添加这些监控项. 案例: 服务器登录人数不超过3人,超过3人报警 自定义key能被server和agent认可 正确的key [[email protected] ~]# zabbix_get -s 172.16.1.21 -p 10050 -k "system.uname" Linux

zabbix监控添加主机,添加模板,处理图形中的乱码,自动发现

添加主机 优先添加主机群组,配置-添加主机群组主机-添加主机-群组-选择刚刚创建的 群组,ip地址填写客户端IP, 添加自定义模板, 模板-添加-创建主机名-添加到组添加一个模板名称aming 在模板下选择一个想要监控的的项目,复制过来我们选择Linux OS模板这一项复制想要选择的监控项目 点击复制后,目标类型选择模板,群组选择模板,目标选择aming应用后,查看模板,主机名,就能看到aming 主机已经有了9个监控项,这9个监控项也就是刚才复制linux os 的那9个监控项. 设置amin

zabbix 二次开发之同步CMDB主机和模板绑定

最近在做zabbix的二次开发:发现zabbix在做自动化方便提供了强悍的支持,下面分享下CMDB和zabbix打通,把CMDB平台里面的所有机器同步到zabbix数据库,然后进行批量的模板绑定: 开发环境: zabbix :2.4 python:flask框架.前端bootstrap,jquey: 实现思路: 一. 在CMDB表和ZAbbix主机表里面建立第三张管理的表(定义叫缓存表):利用zabbix API把数据库里面的host插入到第三张缓存表:然后通过和CMDB库里面的比较把没有在缓存

zabbix应用之discovery批量添加主机并实现自定义主机名

利用zabbix的discovery功能可以实现自动批量添加主机的功能. 下面以自动监控172.16.4.240-250网段的Linux主机为例,步骤如下: 一.客户端安装agent 为网段内的Linux主机安装好zabbix agent,zabbix_agentd.conf正确配置server的IP和端口,启动agent服务. 如果你的操作系统为RHEL或者CentOS推荐使用yum安装方式. 参考官方资料:https://www.zabbix.com/documentation/2.2/ma

Zabbix监控(一):添加主机Host和监控项Items

一.添加监控主机Host 1.默认已添加Zabbix服务器本机,对自身状态进行监控,应用了Linux和Zabbix Server两个模板: 2.点击右侧的Creat host添加监控主机,Groups可在右侧选择一个或在New group中创建一个: 3.在Templates项中添加模板,windows系统的就选择Template OS Windows模板,添加并保存: 4.监控主机HV01如果安装配置好zabbix agent的话,过一会Z(Zabbix)图标变绿,表示监控正常: 5.如果Z图

zabbix调用api接口批量添加主机

zabbix调用api接口批量添加主机,这里用的是python 2.7(需安装xlrd模块处理表格). (1)到官网下载xlrd模块:https://pypi.python.org/pypi/xlrd (2)解压压缩包:tar xvf xlrd-1.0.0.tar.gz(3)进入到解压的文件夹运行python setup.py install命令安装 1.整理一个excel表格(test.xlsx),格式如下: 2.addhost.py脚本,添加主机名.显示名称.dns主机名.群组.模板字段(网