通过Zabbix API 为主机添加监控模板

脚本内容如下;

#!/usr/bin/python
#-*- coding:utf8 -*-
import json,sys,argparse
from zabbix_api import ZabbixAPI
server = "http://172.16.206.128/zabbix"
username = "Admin"
password = "zabbix"
zapi = ZabbixAPI(server=server, path="", log_level=0)
zapi.login(username, password)

def get_args():
    parser = argparse.ArgumentParser()
    parser.add_argument("-H", "--host", help="host name")
    parser.add_argument("-t", "--templates", help="template name")
    # 解析所传入的参数
    args = parser.parse_args()
    if not args.host:
        args.host = raw_input(‘host: ‘)
    if not args.templates:
        args.templates = raw_input(‘templates: ‘)
    return args

def get_host_id(host):
    get_host_id = zapi.host.get(
        {
            "output": "hostid",
            "filter": {
                "host":host.split(",")
            }
        }
)
    host_id = []
    host_id.append([I[‘hostid‘] for I in get_host_id])
    return host_id[0]
def get_templates_id(templates):
    templates_id = zapi.template.get(
    {
        "output": "templateid",
        "filter": {
            "host":templates.split(",")
        }
    }
)
    return templates_id
    
def template_massadd(template_id,host_id):
     template_add = zapi.template.massadd(
        {
            "templates": template_id,
            "hosts": host_id
            }
)
     return "host add template success"
     
if __name__ == "__main__":
    args = get_args()
    host_id = get_host_id(args.host)
    template_id = get_templates_id(args.templates)
    if len(host_id) == len(args.host.split(‘,‘)):
        if len(template_id) == len(args.templates.split(‘,‘)):
            print template_massadd(template_id,host_id)
        else:
            print "template not exist"
    else:
        print "host not exist"

脚本需要传递两个参数:host(主机名)和templates(模板名称),主机可以为多个,用逗号“,”隔开,模板也可以为多个,同样用逗号“,”隔开。

用法:

python template_massadd.py --host="abc,client" --"templates"="Template OS Linux,Templates App MySQL"
host add template success
时间: 2024-10-21 18:01:38

通过Zabbix API 为主机添加监控模板的相关文章

利用Zabbix API创建主机宏

#!/usr/bin/python #coding:utf-8 from zabbix_api import ZabbixAPI import json server="http://172.16.206.130/zabbix" username="Admin" password="zabbix" zapi = ZabbixAPI(server=server,path="",log_level=0) zapi.login(us

zabbix入门到精通之Zabbix对linux主机的监控

我们大概了解了怎么对台主机进行监控,主要步骤设计到添加主机,并且为主机添加监控项,这里主要为item,然后在item的基础上对item进行绘图并且通过screen的方式把不同的监控图像汇总到一张screen上.通过对quick章节我们认识到item监控项在zabbix中是非常重要的,而item的监控是通过key来定义的,key又分为系统预定义好的key和自定义的key组成,这一节,我们通过对zabbix预定义的内存key来了解一下key到底是怎么组成和怎么使用的. Key 参数 类型 单位 举例

PHP通过ZABBIX API获取主机信息 VS 直接从数据库获取主机信息

最近项目需要获取linux主机的一些信息,如CPU使用率,内存使用情况等.由于我们本身就装了zabbix系统,所以我只用知道如何获取信息即可,总结有两种方法可以获取. 一.通过ZABBIX API获取主机信息 这种方式获取的主机信息相对是比较新的(每分钟更新一次).但因为每次都需要请求接口,所以相对比较慢,如果并发查询的主机数量比较多,就会非常慢. 开源监控系统ZABBIX的官方文档提供了丰富的API.我这里http请求是用的Guzzle 6.当然你也可以用php内置的curl函数自己写一个ht

利用Zabbix API 创建主机

#!/usr/bin/env python2.7 # coding=utf-8 from zabbix_api import ZabbixAPI import urllib2 import sys ###get visible_name inet_ip=sys.argv[1] url = 'http://10.47.102.185/api/ecs/?ip={0}'.format(inet_ip) response = urllib2.urlopen(url) result = response.

通过zabbix自带api进行主机的批量添加操作

通过zabbix自带api进行批量添加主机 我们需要监控一台服务器的时候,当客户端装好zabbix-agent端并正确配置以后,需要在zabbix-server的web gui界面进行添加zabbix-agent操作,填写host_name,访问名,ip地址,端口还有模板等信息 这样操作比较方便,但当我们需要添加的主机一次性有上百台甚至前台的时候这种方式效率就比较低了,一般有如下解决方式:1.通过自动发现,自动注册主机2.通过zabbix_api的方式进行批量操作 今天我们使用第二种方式进行操作

zabbix服务器添加监控主机,使用监控模板及自定义监控项

上一篇博文记录了<Ubuntu系统LNMP环境下安装配置zabbix3.04>,这里我记录了添加监控主机,添加监控模板和自定义监控CPU 添加监控主机 1.监控主机安装zabbix-agent $ sudo apt-get install zabbix-agent 2.修改zabbix_agent.conf配置文件 $ sudo vi /etc/zabbix/zabbix_agentd.conf - Server=120.40.*.* #zabbix-server端IP - ServerAct

zabbix详解:(二)添加被监控机器

通过上一篇的学习,看这一篇文章的应该是已经安装好zabbix的了,然而zabbix装好了并不代表就能用,因为他的目的是监控服务器,刚刚安装完也就只能监控zabbix_server自己,显然是要添加被监控机才能叫真正能使用,而zabbix本身虽然自带监控模板,但是有些时候还是不太适用,例如系统的不一样,命令的不一样等等,那怎么办呢,这个时候就需要自己添加监控项目了. 添加被监控机器: 来看看怎么添加被监控机器,只有两步, 第一步,被监控机要装上zabbix_agent,系统不同,就有不同zabbi

zabbix-添加主机、添加自定义模板、添加自动发现、自动发现设置网卡、图形乱码无法显示中文处理

zabbix监控web配置 主动模式和被动模式 主动或者被动是相对客户端来讲的 被动模式:服务端会主动连接客户端获取监控项目数据,客户端被动地接受连接,并把监控信息传递给服务端:主动模式:客户端会主动把监控数据汇报给服务端,服务端只负责接收即可. 当客户端数量非常多时,建议使用主动模式,这样可以降低服务端的压力.服务端有公网ip,客户端只有内网ip,但却能连外网,这种场景适合主动模式 添加主机: 创建主机前,先创建一个主机群组: 创建主机群组: 配置--主机群组--创建主机群组 创建主机: 配置

基于zabbix api根据hostname管理多个template

基于zabbix api根据hostname添加多个template 之前写了一个关联模版的api但是考虑到每个添加一个template是有点复杂,而且最近有那么一个需求,所以改了一下方法,使得可以根据hostname添加多个template. 话不多说直接上脚本和效果: (env1) ?  ~ cat zabbix_add_template.py #!/usr/bin/python #-*- coding:utf-8 -*- #__author__ == 'chenmingle' import