我是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。 然后得到这样的结果:
项目的名称是我期望的,但是键包含端口状态的值,我希望端口状态是项目的值,而不是键。并且它还显示错误“项目不允许参数”。
Zabbix代理配置文件为:UserParameter=custom.discovery,powershell.exe -NoProfile -ExecutionPolicy Bypass -file "C:\Zabbix\Scripts\Get-BZSendMultiPortsInfo-test.ps1"
请帮助我。非常感谢
答案 0 :(得分:1)
您应该在用户参数中使用[*],并在字符串末尾添加$ 1和$ 2:
UserParameter=custom.discovery[*],powershell.exe -NoProfile -ExecutionPolicy Bypass -file "C:\Zabbix\Scripts\Get-BZSendMultiPortsInfo-test.ps1" $1 $2