zabbix自动添加服务URL监控项

1、客户端添加url文件

[[email protected] root]# vim /home/zabbix/scripts/check_url
meisooEurekaService~http://192.168.56.11:8761/chare/health

2、客户端格式化url文件脚本

#脚本文件
[[email protected] root]# vim /home/zabbix/scripts/upload_service_info.py
#!/usr/bin/python
import json
def resove_file(filename):
    service_url_dict = {}
    service_url_list = []
    alldict  = {}
    f = open(filename)
    f_list = f.readlines()
    for line in f_list:
        service_url_dict = {}
        l = line.split(‘~‘)
        url = l[1].rstrip("\n")
        service = l[0].rstrip("\n")
        service_url_dict["{#URL}"] = url
        service_url_dict["{#SERVICE}"] = service
        service_url_list.append(service_url_dict)
    alldict["data"] = service_url_list
    json_conver(alldict)
def json_conver(all_dict):
    jsonStr = json.dumps(all_dict, sort_keys=True, indent=4)
    print jsonStr
resove_file(‘/home/zabbix/scripts/check_url‘)

#授权
[[email protected] root]# chmod +x  /home/zabbix/scripts/upload_service_info.py

#执行返回结果
[[email protected] root]# /home/zabbix/scripts/upload_service_info.py
{
    "data": [
        {
            "{#SERVICE}": "meisooEurekaService",
            "{#URL}": "http://192.168.56.11:8761/health"
        }
    ]
}

3、添加检测URL脚本 -  返回值为1则为正常,0则为失败

[[email protected] root]# vim  /home/zabbix/scripts/check_url.py
# !/usr/bin/python
import sys
import urllib2
url = sys.argv[1]
def accessUrl(url):
    try:
        status = urllib2.urlopen(url,timeout=2).code
        startstr=str(status)
        if startstr.startswith(‘2‘) or startstr.startswith(‘3‘):
            print "1"
        else:
            print "0"
    except Exception,e:
        print "0"
accessUrl(url)

#执行
[[email protected] root]# chmod +x  /home/zabbix/scripts/check_url.py
[[email protected] root]#  /home/zabbix/scripts/check_url.py http://192.168.56.11:8761/health
1

4、编写zabbix-agent监控配置文件

[[email protected] root]# vim /home/zabbix/etc/zabbix_agentd.conf.d/check_service.conf
UserParameter=check_service,python /home/zabbix/scripts/upload_service_info.py
UserParameter=check_service_url[*],python /home/zabbix/scripts/check_url.py $1

#注释
键check_service_url[*]中的‘[*]‘:是指zabbixweb配置监控项原型中键值配置check_service_url[{#URL}]中的"{URL}"
值python /home/zabbix/scripts/check_url.py $1中的$1:是指check_service_url[*]中的"[*]"所指代的"{URL}"

5、zabbixweb界面配置模板 - 自动发现规则【Check_Service_Url】

6、zabbixweb界面配置模板 - 自动发现规则 - 监控原型【checkurl_{#SERVICE}】



7、zabbixweb界面配置模板 - 自动发现规则 - 触发器类型【Service:{#SERVICE},Url:{#URL} on {HOST.NAME} is Unreachable】

原文地址:https://www.cnblogs.com/faithH/p/12613285.html

时间: 2024-10-10 03:39:20

zabbix自动添加服务URL监控项的相关文章

zabbix自定义自动发现服务(low-level-discovery)监控系统服务

一.概述 由于工作关系很久没有更新博客了,本文基于生产配置,是zabbix系列的另一补充:本次要讲的是zabbix Low-level discovery简称(LLD),我们在配置items(监控项)时,有时需要对类似的Items进行添加,换句话说,多台机器上的某一监控具有类似的items,如系统开放的服务,再如磁盘分区,网卡名称等,后两种zabbix已经自带,今天我们以自定义监控每个系统开放的服务来说明 LLD的使用逻辑;和普通items获取不同的是,LLD 脚本在获取返回时,格式必须是jso

zabbix自动发现硬盘并监控其IO

在使用zabbix监控Linux主机的时候,我们希望zabbix能够自动发现Linux主机上有多少块硬盘,而不是我们手动去添加. 实验目的: 让zabbix能够自动发现Linux服务器的磁盘,并能够监控磁盘IO且绘出图形 实验设备: zabbix-server: 172.17.5.230 zabbix-client:  182.17.5.219 实验环境: linux centos 6.6 zabbix-2.4.6 实验步骤 1. 在zabbix客户端的安装目录,如/usr/local/zabb

zabbix 自动发现端口进行监控

zabbix 探索规则自带磁盘及网卡的,参照后整理探索端口并自动添加监控报警功能 : shell脚本: #!/bin/bash port_array=(`netstat -tnlp|egrep -i "$1"|awk {'print $4'}|awk -F':' '{if ($NF~/^[0-9]*$/) print $NF}'|sort |uniq   2>/dev/null`) length=${#port_array[@]} printf "{\n" p

Zabbix监控——Zabbix自定义用户参数制作监控项

很多情况下,我们使用zabbix内建的监控项不足以监控企业的具体业务,这时就需要使用zabbix提供的自定义参数扩展接口,自己根据业务监控需求,开发相应的脚本作为数据获取途径,自定义参数又存在两种方式,一种是直接把脚本内容写在自定义参数配置文件里面,另一种是写成独立的脚本文件,自定义参数配置文件里面直接调用脚本. 接下来给大家展示一下使用自定义脚本方式(脚本内容直接写在配置文件里面)添加监控项第一步:确认zabbix_agent开启了扩展参数配置(客户端的操作)vim /etc/zabbix/z

青蛙学Linux—Zabbix Web使用之模板②监控项

监控项是模板中对于被监控主机的指定对象进行信息收集的配置,只有在模板中配置了监控项,这个模板才能收集到被监控主机的信息.所以监控项是模板中的最重要的项目,是获取监控数据的基础. 1.监控项的配置 点击具体模板中的监控项链接,即可看到该模板中所定义的全部监控项,点击具体监控项的链接,即可修改该监控项.这里查看模板Template OS Linux中的监控项: 点击具体的监控项可修改该监控项:点击"创建监控项"按钮,可以创建新的监控项,创建监控项页面如下: 名称:自定义的监控项名称 类型:

Zabbix Dependent items 从属依赖监控项监控类型

Zabbix 从 3.4版本新增了一个新的监控项类型 Dependent items ,依赖监控项.该选项是为了解决之前 one-key → one-value 的模式,能够在 poll 获取一个监控项值操作的时候,内部把获取到的数据进行Preprocessing预处理分割,值存到不同的 item 之中,已达到高效率的获取监控值方式. 这样降低了 zabbix-server poll 时的开销,也避免了多次获取监控项值 造成多个值时效性不一致的问题. 同时也降低了工程师编写脚本处理这些 one-

Zabbix添加SNMP自定义监控项OID出现“No Such Instance currently exists at this OID”

原因:zabbix 是用snmpget来获取指定的OID数据,snmpwalk是遍历某个OID下的数据. 所以一定要用snmpget来验证某个OID是否正确. snmptranslate 获取的OID,用snmpwalk可以获取数据,但是snmpget需要多加一个.0 [[email protected] externalscripts]# snmptranslate -On F5-BIGIP-SYSTEM-MIB::sysClientsslStatTotConns1m.1.3.6.1.4.1.

zabbix自动发现端口并监控

参考 http://ywzhou.blog.51cto.com/2785388/1580160 1 客户端新建脚本 #!/bin/bash portarray=(`sudo netstat -tnlp|egrep -i "$1"|awk {'print $4'}|awk -F':' '{if ($NF~/^[0-9]*$/) print $NF}'|sort|uniq`) length=${#portarray[@]} printf "{\n" printf  '\

zabbix自动发现实现批量监控docker状态

最近在搞zabbix监控docker以及docker内部应用状态信息,网上找的资料好少,只找到了一个大神的一篇文章,用的是python实现监控docker容器的基本状态,我在他给的脚本基础上进行修改,另外,增加了docker内部常用应用的状态监控,目前在测试环境上部署成功了,具体还需要在线上环境部署后才能检验出效果如何. 好了,根据惯例,废话讲完了,开始进入正题了. 首先,介绍下该监控套件有三个脚本,一个是自动发现主机上的docker容器脚本,另一个是用python写的获取每个docker容器的