我试图创建一个发现规则来监视企业应用程序,我的脚本返回以下JSON。
{
"data": [{
"{#NODENAME}": "node1",
"{#NODEINTERFACE}": ["eth0", "eth1"]
},
{
"{#NODENAME}": "node2",
"{#NODEINTERFACE}": ["eth2", "eth3"]
}
]
}在Zabbix接口上,我使用以下参数创建了这个发现:
名称::发现节点和接口
类型: Zabbix试剂
密钥app.discovery
在“过滤器”TAB中:
计算类型:和/或
Zabbix上的预期行为是创建以下键:
app.getinfo["{#NODENAME}","{#NODEINTERFACE}]也就是说,为每个NODENAME创建N个键,为每个接口创建一个
app.getInfo["node1","eth0"]
app.getInfo["node1","eth1"]
app.getInfo["node2","eth2"]
app.getInfo["node2","eth3"]该行为得到的是:
如果计算类型为和/或,则Zabbix不创建项
如果计算类型为或,则Zabbix为每个NODENAME创建一个项,忽略/不识别NODEINTERFACE
我的疑问是,如何为每个NODENAME创建一个发现规则,用NODEINTERFACE信息创建N个条目
发布于 2017-06-25 23:23:45
首先,原型键可能是错误的--在app.getinfo["{#NODENAME}","{#NODEINTERFACE}]中没有关闭引号。
其次,您的JSON应该是这样的:
{
"data": [
{
"{#NODENAME}": "node1",
"{#NODEINTERFACE}": "eth0"
},
{
"{#NODENAME}": "node1",
"{#NODEINTERFACE}": "eth1"
},
{
"{#NODENAME}": "node2",
"{#NODEINTERFACE}": "eth2"
}
{
"{#NODENAME}": "node2",
"{#NODEINTERFACE}": "eth3"
}
]
}请注意,每个条目必须包含要在创建的实体中表示的单个值集。
https://serverfault.com/questions/857806
复制相似问题