设为首页 收藏本站
查看: 1310|回复: 0

[经验分享] 基于zabbix添加host与trigger完善~

[复制链接]

尚未签到

发表于 2019-1-22 11:06:28 | 显示全部楼层 |阅读模式
  在配置 zabbix的过程中或者通过zabbix获取数据是,总是需要获取各个组建的id号,有时候需要添加几十上百个item或者trigger。所以就自己写了下面的类。如果以后有需要会再完善。不过估计是不需要了,因为做了一个月监控,终于做完了。代码如下,已经给出简单的注释。有问题可留言。
  

#!/usr/bin/python
#-*- coding:utf8 -*-
from zabbix_api import ZabbixAPI
class zabbix_tools:
    '''
    从zabbixweb端获取,Item,host,等列表并添加host及trigger。
'''
    def __init__(self,server,username,password):
        self.server=server
        self.zapi = ZabbixAPI(server=self.server, path="", log_level=0)
        self.zapi.login(username,password)
        self.item_dict={}
        self.app_dict={}
        self.host_dict={}
        self.group_dict={}
    def get_item_list(self,hostname):
    #获取指定host的item列表
        search={"filter":{"host":[hostname]}}
        for application_id in ['2311','2312']:
            search["applicationids"]=application_id
            for item_info in self.zapi.item.get(search):
                self.item_dict[item_info["name"]]=[item_info["itemid"],item_info["key_"]]
        return self.item_dict
    def get_host_list(self):
    #获取整个zabbix的host列表
        for host in zapi.host.get({}):
            self.host_dict[host['name']]=host['hostid']
        return self.host_dict
    def get_group_list(self):
    #获取整个zabbix的hostgroup列表
        for group in zapi.hostgroup.get({}):
            self.group_dict[group['name']]=group['groupid']
        return self.group_dict
    def get_host_info(self,hostname):
    #获取指定host的信息
        host_info = self.zapi.host.get({"selectInterfaces":["interfaceid"],"filter":{"host":[hostname]}})
        hostid = host_info[0]['hostid']
        interfaceid =  host_info[0]['interfaces'][0]['interfaceid']
        return (hostid,interfaceid)
    def get_aplication_list(self,hostname):
    #获取指定host的application列表
        search={"filter":{"host":[hostname]}}
        for app in self.zapi.application.get(search):
            self.app_dict[app['name']]=app['applicationid']
        return self.app_dict
    def create_item(name,key,hostname,appname):
    #在指定host下添加一个item并指定appname。
        a = self.get_host_info(hostname)
        hostid = a[0]
        interfaceid = a[1]
        applicationid=self.get_aplication_list[hostname][appname]
        create_item=self.zapi.item.create(
            {
                "name":name,
                "key_":key,
                "hostid":hostid,
                "type":0,
                "value_type":0,
                "interfaceid":interfaceid,
                "date_type":0,
                "delay":60,
                "history":7,
                "trends":90,
                "status":0,
                "applications":[
                    applicationid
                ]
            }
        )
        return "item create success"
    def create_trigger(self,expression,description,hostname):
    #为某个host添加trigger
        a = self.get_host_info(hostname)
        hostid = a[0]
        self.zapi.trigger.create({"description":description,"expression":expression,"hostid":hostid,'priority':2})
        print "trigger create success"
if __name__ == '__main__':
    server = "zabbix web server url"
    username = "youusername"
    password = "yourpassword"
    app=zabbix_tools(server,username,password)
    print app.get_group_list()  





运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-666295-1-1.html 上篇帖子: zabbix_agent for linux自动安装脚本 下篇帖子: Zabbix监控平台汉化修改
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表