zabbix 自动发现/zabbix自动发现规则

  • Post author:
  • Post category:其他


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