zabbix:利用zabbix API的接口,修改指定模板的监控项的触发器的表达式

本文介绍了如何通过Zabbix API获取指定模板的监控项,并找到需要的监控项及其触发器表达式。详细步骤包括:1) 使用template.get获取模板ID;2) 利用item.key获取itemID、itemKey和itemName;3) 选择所需监控项,用trigger.get获取triggerID和expression;4) 使用trigger.update更新触发器表达式,设置触发时间为9:00-11:30和13:00-15:30。注意在使用trigger.get时,要通过expandExpression参数来获取具体表达式信息。
摘要由CSDN通过智能技术生成

要求:利用zabbix api去获取指定模板下的监控项,然后获取自己需要的监控项,根据监控项获取触发器的表达式,修改触发器的出发时间为9:00-11:30,13:00-15:30

思路讲解:
首先利用zabbix api中的template.get方法获取指定模板的templateid,然后利用item.key方法指定参数为templateids,就可以获取到templateid下的itemid,itemkey,itemname等数据,然后根据自己需要筛选出自己需要的item以及相关的数据,后面再根据trigger.get方法,其中itemids参数就可以获取到triggerid以及expression(表达式),最后根据trigger.update方法,指定triggerids参数,就可以修改expression(表达式)。

详细代码:

#!/usr/bin/env python 
#coding=utf-8 
#Function:Get the trigger for the specified template and change the trigger time to 9:00-11:30 and 13:00-15:30

#导入模块,urllib2是一个模拟浏览器HTTP方法的模块
import json
import urllib2
import sys
import re
from urllib2 import Request, urlopen, URLError, HTTPError
 
#url and url header 
ip="10.10.30.232"
zabbix_url="http://{0}/zabbix/api_jsonrpc.php".format(ip) 
zabbix_header = {"Content-Type":"application/json"} 
zabbix_user   = "admin" 
zabbix_pass   = "zabbix" 
auth_code     = ""
match_item=['mktdt00 update', 'mktdt01 update', 'mktdt03 update', 'file.size', 'file.modify.time']

#auth user and password 

def get_auth_id():
    auth_data = json.dumps(
            {
                "jsonrpc":"2.0",
                "method":"user.login",
                "params":
                        {
                            "user":zabbix_user,
                            "password":zabbix_pass
                        },
                "id":0
            }) 
    
    # create request object 
    request = urllib2.Request(zabbix_url,auth_data) 
    for key in zabbix_header: 
        request.add_header(key,zabbix_header[key]) 
    
    #auth and get authid 
    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()) 
        result.close() 
        if  'result'  in  response:
            auth_code=response['result&
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值