Zabbix发现规则-如何填写关键项目

时间:2019-03-08 13:41:05

标签: json key zabbix lld

我是Zabbix的新手,遇到了问题。 我在Power Shell中运行一个脚本并获取以下示例数据:

{
        "data":[
                {
                        "{#BZSENDPORTNAME}":"Com_Onshore_SDE",
                        "{#BZSENDPORTSTATUS}":"3"},
                    {
                        "{#BZSENDPORTNAME}":"Com_Onshore_Backup",
                        "{#BZSENDPORTSTATUS}":"3"},
                    {
                        "{#BZSENDPORTNAME}":"Remit_ForecastMeter",
                        "{#BZSENDPORTSTATUS}":"3"}]}

这里只是一个示例,大约有40多个端口名称和端口状态对。 我已经在Zabbix服务器中创建了发现规则,希望它可以自动创建名称为{#BZSENDPORTNAME}且其值为{#BZSENDPORTSTATUS}的项目。 例如:item Com_Onshore_SDE;值=3。我创建了一个发现here。 然后得到这样的结果:

enter image description here

项目的名称是我期望的,但是键包含端口状态的值,我希望端口状态是项目的值,而不是键。并且它还显示错误“项目不允许参数”。 Zabbix代理配置文件为:UserParameter=custom.discovery,powershell.exe -NoProfile -ExecutionPolicy Bypass -file "C:\Zabbix\Scripts\Get-BZSendMultiPortsInfo-test.ps1"

请帮助我。非常感谢

1 个答案:

答案 0 :(得分:1)

您应该在用户参数中使用[*],并在字符串末尾添加$ 1和$ 2:

UserParameter=custom.discovery[*],powershell.exe -NoProfile -ExecutionPolicy Bypass -file "C:\Zabbix\Scripts\Get-BZSendMultiPortsInfo-test.ps1" $1 $2