首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >原创:用zabbix api批量添加web监控

原创:用zabbix api批量添加web监控

作者头像
用户1057912
发布2018-07-06 18:17:44
1.5K0
发布2018-07-06 18:17:44
举报
文章被收录于专栏:老安的博客老安的博客

代码如下,进攻大家参考,转载的话说明来源

前面5个变量自行补齐,

#!/usr/local/python3.51/bin/python3
# Author:         Anxinhai@wondersgroup
# Mail:           29338383@qq.com
from pyzabbix import ZabbixAPI
import sys
from re import compile,IGNORECASE
ZABBIX_SERVER = ""
USER = ""
PASSWORD = ""
HOSTNAME = "" 
URL=""
def login(ZABBIX_SERVER,USER,PASSWORD):
  zapi = ZabbixAPI(ZABBIX_SERVER)
  zapi.login(USER,PASSWORD)
  return zapi
def gethostid(auth,HOSTNAME):
  request = ZabbixAPI.do_request(auth, 'host.get', params={ "filter": {"host":HOSTNAME}})
  if request['result']:
    return request['result'][0]['hostid']
  else:
    print ("找不到该主机")
    sys.exit(1)
def getapplicationid(auth,hostid):
  try:
    request = ZabbixAPI.do_request(auth, 'application.create', params={"name": "web监控","hostid": hostid})
  except Exception as e:
    print(e)
  request = ZabbixAPI.do_request(auth, 'application.get', params={"hostids": hostid})
  for num in range(0,len (request['result'])):
    if request['result'][num]['name'] == "web监控":
      return request['result'][num]['applicationid']
def create_web_scenario(auth,URL,hostid,applicationid):
  request = ZabbixAPI.do_request(auth, 'httptest.get', params={ "filter": {"name": URL}})
  if request['result']:
    print('该web监控已经添加过了' )
  else:
    try:
      ZabbixAPI.do_request(auth, 'httptest.create',params={"name": URL,"hostid": hostid,"applicationid": applicationid, "delay": '60',"retries": '3', "steps": [ { 'name': URL, 'url': URL, 'no': '1'} ] } )
    except Exception as e:
      print(e)
def create_trigger(auth,HOSTNAME,URL):
  expression="{"+"{0}:web.test.fail[{1}].last()".format(HOSTNAME,URL)+"}"+"<>0"
  try:
    ZabbixAPI.do_request(auth, 'trigger.create', params={"description": "从监控机(172.18.11.34)访问{0}出现问题,如果网络和主机性能没问题,并且是单节点报错请尝试重启对应的tomcat".format(URL),"expression": expression,"priority":5})  
  except Exception as e:
    print(e)

auth = login(ZABBIX_SERVER,USER,PASSWORD)
hostid = gethostid(auth,HOSTNAME)
applicationid=getapplicationid(auth,hostid)
create_web_scenario(auth,URL,hostid,applicationid)
create_trigger(auth,HOSTNAME,URL)
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2016-04-26 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
前端性能监控
前端性能监控(Real User Monitoring,RUM)是一站式前端监控解决方案,专注于 Web、小程序等场景监控。前端性能监控聚焦用户页面性能(页面测速,接口测速,CDN 测速等)和质量(JS 错误,Ajax 错误等),并且联动腾讯云应用性能监控实现前后端一体化监控。用户只需要安装 SDK 到自己的项目中,通过简单配置化,即可实现对用户页面质量的全方位守护,真正做到低成本使用和无侵入监控。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档