zabbix 自定义自动发现的key! low level discovery

1 意义和目的,在这里不讨论,只讨论是实现方法

2 学习的前提,你会编写常规的key! 和理解模板,item知识

系统环境

master端:

[[email protected] zabbix_agentd.conf.d]# ifconfig  eth0| sed -n ‘s#.*inet addr:\(.*\) B.*#\1#gp‘
192.168.100.10
client端
[[email protected] zabbix]# ifconfig  eth0| sed -n ‘s#.*inet addr:\(.*\) B.*#\1#gp‘ 
192.168.100.13

分两块,zabbix-server 的web界面 进行创建,和agent端脚本实现

[[email protected] ~]# grep -i "Include" /etc/zabbix/zabbix_agentd.conf | egrep -v "^#|^$"
Include=/etc/zabbix/zabbix_agentd.conf.d/
[[email protected] ~]# cat /etc/zabbix/zabbix_agentd.conf.d/web_site_discovery.conf 
#web sitec code
UserParameter = web.site.discovery, python /etc/zabbix/scripts/web_site_code_status.py
UserParameter = test.test, sh /etc/zabbix/scripts/test.sh
UserParameter= web.site.code[*], sh /etc/zabbix/scripts/check_web_code.sh $1
[[email protected] ~]#

第一步、在agent上看如何写自动发现的key,web.site.discovery 脚本

[[email protected] ~]# cat /etc/zabbix/scripts/web_site_code_status.py
#!/usr/bin/env python
#encoding=utf8
import os
import json
r = file(‘/etc/zabbix/scripts/web.txt‘)
devices = []
for f in r.readlines():
    devices.append({"{#SITENAME}": f.strip()})
print json.dumps({‘data‘: devices}, sort_keys=True, indent=4)
[[email protected] ~]# cat /etc/zabbix/scripts/web.txt 
www.baidu.com
www.sina.com.cn
www.pingan.com.cn
www.weibo.com

zabbix中low level discovery 的key的返回值是一个Json格式。且格式一定要如下k/v

[[email protected] ~]# python /etc/zabbix/scripts/web_site_code_status.py
{
    "data": [
        {
            "{#SITENAME}": "www.baidu.com"
        }, 
        {
            "{#SITENAME}": "www.sina.com.cn"
        }, 
        {
            "{#SITENAME}": "www.pingan.com.cn"
        }, 
        {
            "{#SITENAME}": "www.weibo.com"
        }
    ]
}
[[email protected] ~]#

验证在master上使用zabbix-get 测试是否这个key有效

[[email protected] zabbix_agentd.conf.d]# /usr/local/zabbix/bin/zabbix_get -s 192.168.100.13 -k web.site.discovery
{
    "data": [
        {
            "{#SITENAME}": "www.baidu.com"
        }, 
        {
            "{#SITENAME}": "www.sina.com.cn"
        }, 
        {
            "{#SITENAME}": "www.pingan.com.cn"
        }, 
        {
            "{#SITENAME}": "www.weibo.com"
        }
    ]
}

根据上面,值,这个key已经生效!

第二步,在master的web端界面上创建一个自动发现(在你需要的模板上创建)

a.

b. 在创建一个自动发现的item(注意区分其他正常的item)

呈现的状态:

第三步、把agent这台主机关联到这个模板上(这个你因该要懂得操作)

这个主机的itme中会出现

时间: 2024-10-15 05:08:51

zabbix 自定义自动发现的key! low level discovery的相关文章

Zabbix监控redis多实例(low level discovery)

对于多实例部署的tomcat.redis等应用,可以利用zabbix的low level discovery功能来实现监控,减少重复操作. 注:Zabbix版本: Zabbix 3.0.2 一.服务端配置 1.创建模板 模板名称: Template_Redis_Monitor 2.创建自动发现规则 给已创建好的模板Template_Redis_Monitor添加自动发现规则. 3.添加监控项原型 从上面截图可以看到,我已经创建了4个,具体如下: 看看其中一个: 再来看看主机关联模板后的监控项:

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

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

Zabbix 的自动监控项目监控Nginx各hostname配置 - Low Level Discovery

Zabbix演示版本:2.4.4 涉及到的脚本语言:PHP low-level discovery的意思是"低层次的自动发现",检查lld. lld并不似因为功能简单或者不重要而被称为"低层次的",而是因为相对于服务器的自动发现,low-level discovery是针对服务器上设备的自动发现. Zabbix 原生支持针对三种(文件系统.网卡.SNMP OIDs)自动发现来配套自动添加Items.Triggers 和 Graphs等.在lld中它们被称为Item原

zabbix的自动发现、自定义添加监控项目

1.zabbix的自动发现这里的自动发现,所显示出来的是规则的上自动了现 然后 可以对其内容进行相关的配制,如时间或周期 注意:对于单个主机的规则,可以自行添加或删除, 但对于已经添加好了的规则,若需要修改那么,就只有到模板里面进行相关设置.   2.自定义添加监控项目,监控项目都是针对于客户机而言的,一般都是对客户机进行配制 先在客户机创建一个脚本加入以下内容:mkdir /etc/zabbix/sh; vim /etc/zabbix/sh/estab.sh #!/bin/bash##获取80

Zabbix监控Low level discovery实时监控网站URL状态

今天我们来聊一聊Low level discovery这个功能,我们为什么要用到loe level discovery这个功能呢? 很多时候,在使用zabbix监控一些东西,需要对类似于Itens进行添加,这些items具有一些共同特性, 如果说某些特定的参数是变量,而其他设置都一样,例如:一个程序有多个端口,需要多端口进行监控并配置Itmes,还有磁盘分区,·网卡名称等等, 都是具有不确定性,如果我们配置固定的Items的话,会出现无法通用的问题,所以呢,我们需要来了解一下low level 

Zabbix之自动发现

1. 打开configure--Discovery--create discovery rule: 需要添加名称,ip地址段(这个地址段以覆盖你所有IP的最小地址段为好),checks.其中checks最为重要,总共三项,只填写key,这里用 system.uname这个key.然后点击添加并保存.这里的意思是zabbix服务器端扫描这个网段中的zabbix客户端(客户端端口默认为 10050),扫描到之后取客户端的system.uname值,这个值返回的类似于linux系统中的uname –a

zabbix通过自动发现功能实现自动识别网络设备接口

由于之前网络设备不是很多,监控网络设备接口就直接使用模版中的item来实现了,可是现在公司上线了一大批网络设备,如果要每个网络设备都做模板,添加item......那就该废了,于是迫于压力今天来测试使用zabbix的自动发现功能实现自动发现网络设备接口,并且自动获取接口的流量值,生成流量图等功能. 这样的话就能节省大量时间,时间就是生命啊,把时间浪费在枯燥的添加网络接口的工作上就是在浪费生命!好了,废话不多说,进入正题: 首先,在交换机上面配置好snmp协议,为了简单,这里目前使用的是snmp

Zabbix自动化之low level discovery遇到的问题

前言: 话说很久都没有写Zabbix相关的文章,今天来写写Zabbix LLD使用中遇到的问题. 广而告之: 在这里告诉大家一个好消息,本人所写的<Zabbix企业级分布式监控系统>将在8月上旬发布,关注此书的朋友可以加Q群[zabbix企业级分布式监控 271659981 (可申请加入,验证码:Zabbix监控)] 原文链接为新书<Zabbix企业级分布式监控系统>所带的附件部分,托管在github上面,不定期更新更多新内容,欢迎关注,下面正文开始. {        "

zabbix低级自动发现之mysql多实例

1.低级自动发现概述 zabbix的低级自动发现(LLD)适用于监控多实例,监控变化的数据(分区.网卡). 自动发现(LLD)提供了一种在计算机上为不同实体自动创建监控项,触发器和图形的方法.例如,Zabbix可以在你的机器上自动开始监控文件系统或网络接口,而无需为每个文件系统或网络接口手动创建监控项.此外,可以配置Zabbix根据定期执行发现后的得到实际结果,来移除不需要的监控项. 在zabbix中,支持六种类型的发现项目: 系统文件的发现 网络接口的发现 CPU和CPU内核的发现 SNMP