zabbix通过自动发现规则,根据脚本自动动态的定义监控的key,再根据key获取值
discovery.py动态获取key
#!/usr/bin/env python import json import sys def get_ip(): a={ "data":[ {"{#IP}":"127.0.0.4"}, {"{#IP}":"127.0.0.5"}, {"{#IP}":"127.0.0.6"} ] } print json.dumps(a,sort_keys=True, indent=2) get_ip()
脚本模拟动态获取访问最多的ip,并通过zabbix自动发现把ip作为key。这个脚本数出来的格式必须是json格式,用于zabbix去识别发现,而且里面的键要是data。
#!/usr/bin/env python import sys a={"127.0.0.4":1,"127.0.0.5":2,"127.0.0.6":3} ip=sys.argv[1] print a[ip]
此脚本模拟根据key获取value
配置zabbix的配置文件
UserParameter=discovery_gsd_ip_num,/opt/script/discovery.py
UserParameter=gsd_ip_num[*],/opt/script/get.py $1
zabbix页面添加自动发现规则
添加监控原型
zabbix 定义了一个变量 {#IP} = ip 也就是我们在任何一个脚本里面都可以将这个变量加传递进去!
注意,这是在模板的自动发现规则里面的监控项原型定义的监控项 并不是 模板里面的监控项 两者是不同的,当你把监控项原型定义之后,他会自动发现里面的规则,然后帮助我们自动在监控项里面添加
然后查看监控项,可以看到我们定义的动态的key已经生成,失效的key到期会自动删除
查看最新数据,也可以看到已经获取到数据
转载于:https://www.cnblogs.com/quanloveshui/p/9516248.html