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到期會自動刪除

查看最新數據,也可以看到已經獲取到數據

