利用zabbix-api创建item

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

#通过主机名获取hostid和interfaceid
def get_hostinfo():
    host_info=zapi.host.get({"selectInterfaces":["interfaceid"],"filter":{"host":["Zabbix server"]}})
    hostid = host_info[0][‘hostid‘]
    interfaceid =  host_info[0][‘interfaces‘][0][‘interfaceid‘]
    return (hostid,interfaceid)

###创建item
def create_item():
    ###判断主机上item是否存在,返回值为True或者False
    item_exist = zapi.item.exists({"host": "Zabbix server", "key_": "proc.num[,,,/etc/nginx/nginx.conf]"})
    if not item_exist:
        a = get_hostinfo()
        hostid = a[0]
        interfaceid = a[1]
        create_item=zapi.item.create(
            {
                "name":"nginx service monitor",
                "key_":"proc.num[,,,/etc/nginx/nginx.conf]",
                "hostid":hostid,
                "type":7,
                "value_type":3,
                "interfaceid":interfaceid,
                "date_type":0,
                "delay":60,
                "history":7,
                "trends":90,
                "status":0
            }
        )
        return "item create success"
    else:
        return "item exists"
if __name__ == "__main__":
    result=create_item()
    print result

脚本思路:

在主机上创建item必须获取主机的hostid,interfaceid,而这两个值必须通过zabbix API提供的host.get方法获取到。然后定义一个函数get_hostinfo,该函数返回这两个hostid和interfaceid。再定义一个创建item的函数create_item,这个函数中先调用get_hostinfo函数,获取到hostid,interfaceid。先判断主机上item是存在,如果不存在,则执行create_item函数,来创建item。

时间: 2024-11-08 11:17:55

利用zabbix-api创建item的相关文章

利用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 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.

16.使用zabbix api创建screen

zabbix的screen功能可以把graph聚合起来,统一进行展示, 我们的需求是把同一个主机组的同一个item聚合起来,比如一个screen显示同一个组的所有主机的内存使用率,达到类似ganglia的效果, 由于服务器较多,所以我们调用zabbix api来进行创建. 参考地址如下:谢谢各位大牛 https://www.zabbix.org/wiki/Python_script_to_create_Screen_from_all_Items/Graphs_of_a_host http://c

利用zabbix api添加、删除、禁用主机

python环境配置yum -y install python-pip安装argparse模块pip install -i https://pypi.douban.com/simple/ argparse 脚本修改请修改脚本中zabbix登录地址以及zabbix管理员帐户及密码 #!/usr/bin/env python #-*- coding: utf-8 -*- import json import sys import urllib2 import argparse from urllib

python利用zabbix API添加监控

首先说一下坑的地方就是python2和python3的模块改变问题,当然精通python的可以略过.这个在网上百度一下吧,第二个是导入xlsx文件的时候需要xlrd模块,而这个模块最好跟着我下面的方法走,那个python2 就可以用我下边的脚本了. 1.安装xlrd读取Excel文件 1.1. 下载setuptools-38.2.4.zip,上传至zabbix服务器解压安装,下载地址:https://pypi.python.org/packages/69/56/f0f52281b5175e3d9

利用zabbix API进行管理

zabbix 现在之所以那么流行,个人感觉跟zabbix 强大的API有一个很大的关系,利用API可以帮我们完成很多事情: 1.获取相关组,主机信息. 2.比如有人喜欢获取历史数据重新出图. 3.添加删除主机,绑定删除模板. 4.添加删除维护周期 这里我使用pipy提供的zabbix_client模块来进行,这样就不用我们自己去写登录函数,只要在模块开始指定用户名密码即可: 1.安装zabbix_client: pip install zabbxi_client 2.API管理脚本,替换成自己用

利用zabbix api 带入 组ID 和 监控项目键值 获取所有主机的值

def  chaxun(groupid,items_value):  是自己写的,带入组ID 和 监控项目键值,返回 主机和值的结果. 做了判断,如果这个主机没有想要的监控项目,就去除掉. #!/usr/bin/env python #coding=utf-8 import urllib.request import json import re url = 'http://XXXXXXXXXXXXXXXX/api_jsonrpc.php' username = 'Admin' password

利用Zabbix API 获取各个分组下的服务器列表以及详细信息

现在越来越多的公司选择使用开源软件Zabbix来做服务器业务监控,其高逼格的用户管理是个亮点,所以可以通过调用它的接口将权限管理应用到很多地方,比如说堡垒机权限.以下是用python简单写了个小脚本,通过定义分组名便可以得到分组下的服务器信息. #coding=utf-8 __author__ = 'Perling' from urllib import urlencode import urllib2 import json def post(post_data):     api_url =

调用zabbix API实现批量管理主机及个监控项

首先贴上zabbix官网和中文官网的地址: https://www.zabbix.com/documentation/3.4/manual/api/reference/item/object https://www.zabbix.com/documentation/3.4/zh/manual/api 任何时候任何难题在官网上几乎都能找到答案 首先,我们想用利用zabbix的restful api来访问zabbix,肯定是需要登陆认证的.在zabbix的后续操作中,必须要有一个TOKEN,这也是官