1

我是 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} 的项目。例如:项目 Com_Onshore_SDE ;value = 3。我在这里创建了一个发现。然后我得到这样的结果:

在此处输入图像描述

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

请帮我解决一下这个。非常感谢

4

1 回答 1

1

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

UserParameter=custom.discovery[*],powershell.exe -NoProfile -ExecutionPolicy Bypass -file "C:\Zabbix\Scripts\Get-BZSendMultiPortsInfo-test.ps1" $1 $2
于 2019-03-08T19:15:38.937 回答