Linux
Zabbix 發現 JSON 格式
我嘗試創建一個發現規則來監控企業應用程序,並且我的腳本返回以下 JSON。
{ "data": [{ "{#NODENAME}": "node1", "{#NODEINTERFACE}": ["eth0", "eth1"] }, { "{#NODENAME}": "node2", "{#NODEINTERFACE}": ["eth2", "eth3"] } ] }
在 Zabbix 界面上,我使用以下參數創建了發現:
名稱: : 發現節點和介面
類型:Zabbix 代理
關鍵app.discovery
在“過濾器”選項卡中:
計算類型:和/或
Zabbix 上的預期行為是創建以下鍵:
密鑰格式:
app.getinfo["{#NODENAME}","{#NODEINTERFACE}]
即為每個NODENAME創建N個鍵,每個介面一個
發現鍵:
app.getInfo["node1","eth0"] app.getInfo["node1","eth1"] app.getInfo["node2","eth2"] app.getInfo["node2","eth3"]
該行為收到了它的:
如果計算類型是And/Or,Zabbix不會創建項目
如果計算類型是Or,Zabbix 為每個 NODENAME 創建一項,並忽略/不辨識 NODEINTERFACE
我的疑問是,如何創建發現規則,對於每個 NODENAME,使用 NODEINTERFACE 資訊創建 N 個項目
首先,原型鍵可能是錯誤的——引號沒有用
app.getinfo["{#NODENAME}","{#NODEINTERFACE}]
.其次,你的 JSON 應該是這樣的:
{ "data": [ { "{#NODENAME}": "node1", "{#NODEINTERFACE}": "eth0" }, { "{#NODENAME}": "node1", "{#NODEINTERFACE}": "eth1" }, { "{#NODENAME}": "node2", "{#NODEINTERFACE}": "eth2" } { "{#NODENAME}": "node2", "{#NODEINTERFACE}": "eth3" } ] }
請注意每個條目如何必須包含您希望在創建的實體中表示的一組值。