zabbix 之 low level discovery

仅提供一个思路,怎么去实现这种功能
1:Configuration--Templates客户端配置
1.1:找到zabbix目标客户端,编写脚本获取需要的数据
vim web_site_code_status.py
#!/usr/bin/env python
#coding:utf-8
import os 
import json

r = open('/etc/zabbix/web.txt','r').read().split()

devices = []

for devpath in r:
        device = os.path.basename(devpath)
        devices += [{'{#SITENAME}':device}]
print json.dumps({'data':devices},sort_keys=True,indent=7,separators=(',',':')) 
####脚本不要放在Include=/etc/zabbix/zabbix_agentd.conf.d/ 开启的这个目录下
        因为zabbix启动的时候会直接加载这个目录下面的所有文件,而我们写的脚本不
        符合key:value格式,加载会报错
配置文件加入:
UserParameter=web.site.discovery,/etc/zabbix/web_site_code_status.py
重启服务
在服务端做测试
测试:./zabbix_get  -s IP -k web.site.discovery
输出:{
       "data":[
              {
                     "{#SITENAME}":"www.baidu.com"
              },
              {
                     "{#SITENAME}":"sina.com"
              }
       ]
}
输出如上面的json格式就可以了

1.2:根据上面的输出来做判断,比如我这里做的是检测网址是否能正常打开
直接在客户端配置文件里面做配置,也可以自己写脚本,运行脚本返回一个值就好了
UserParameter=web.site.code[*],curl -o /dev/null -s -w %{http_code} http://$1
$1就是web.site.code这个key后面中括号带的变量,因为我这里只有一个,所以检测就只有一个$1

重启客户端服务
切换到服务端
测试:./zabbix_get  -s IP -k web.site.code[www.baidu.com]
200
返回结果表明正常

2:客户端前期准备工作完成,现在开始web界面的配置
2.1:Configuration--Templates
创建模板以及关联主机

 

 

 

2.2:创建Applications 

2.3:创建发现规则Discovery rules
这个key就是前面获取json数据的key  web.site.discovery
然后指定脚本里面的宏变量来获取数据

2.4:在Discovery rules里面创建Item prototypes 
$1,就是宏变量代入之后的值
key就是web.site.code[*],这不过*号用宏变量代替,获取动态的值

2.5:在Discovery rules里面创建Trigger prototypes 

2.6:在Discovery rules里面创建Graph prototypes

到此配置完毕,根据你配置的检测时间,去关联的主机里面查看有没有生成对应的items,trigger,graph

转载于:https://my.oschina.net/u/2343310/blog/1476596

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值