Zabbix Discovery JSON 格式

Zabbix Discovery JSON 格式

我尝试创建一个发现规则来监控企业应用程序,并且我的脚本返回以下 JSON。

{
    "data": [{
            "{#NODENAME}": "node1",
            "{#NODEINTERFACE}": ["eth0", "eth1"]
        },
        {
            "{#NODENAME}": "node2",
            "{#NODEINTERFACE}": ["eth2", "eth3"]
        }
    ]
}

在 Zabbix 界面上,我使用以下参数创建了发现:

姓名::发现节点和接口

类型:Zabbix 代理

钥匙应用程序发现

在“过滤器”选项卡中:

计算类型:和/或


Zabbix 的预期行为是创建以下键:

密钥格式:

app.getinfo["{#NODENAME}","{#NODEINTERFACE}]

也就是说,对于每个节点名称创造键,每个接口一个

发现钥匙:

app.getInfo["node1","eth0"]
app.getInfo["node1","eth1"]

app.getInfo["node2","eth2"]
app.getInfo["node2","eth3"]

该行为得到了以下结果:

如果计算类型和/或, 扎比克斯不是创建项目

而如果计算类型或者,Zabbix创建每个 NODENAME 的项目,并忽略/不识别 NODEINTERFACE


我的疑问是,如何创建发现规则,对于每个 NODENAME,使用 NODEINTERFACE 信息创建 N 个项目

答案1

首先,原型键很可能是错误的——引号没有闭合app.getinfo["{#NODENAME}","{#NODEINTERFACE}]

其次,你的 JSON 应该是这样的:

{
    "data": [
    {
        "{#NODENAME}": "node1",
        "{#NODEINTERFACE}": "eth0"
    },
    {
        "{#NODENAME}": "node1",
        "{#NODEINTERFACE}": "eth1"
    },
    {
        "{#NODENAME}": "node2",
        "{#NODEINTERFACE}": "eth2"
    }
    {
        "{#NODENAME}": "node2",
        "{#NODEINTERFACE}": "eth3"
    }
]
}

请注意,每个条目必须包含您想要在创建的实体中表示的一组值。

相关内容