Zabbix 发现规则 | 多个值 | 不支持且项目不允许参数

Zabbix 发现规则 | 多个值 | 不支持且项目不允许参数

我正在尝试获取 Windows 进程指标,但遇到了一些困难。首先,我创建了一个新模板,添加了一个发现规则,并将密钥命名为胜利过程指标

然后我使用以下键创建了2个项目原型。

Type Zabbix Agent(Active): win.process.metrics[{#PID}]
Type Dependent Item: win.process.metrics[{#PROCESSNAME}]

我为同一个创建了 2 个 LLD 宏

{#PROCESSNAME} = $.ProcessName
{#PID}=$.Id

然后我在 zabbixAgent conf 文件中创建了用户参数

UserParameter=metric.process.discovery,powershell -NoProfile -ExecutionPolicy Bypass -File "C:\Program Files\Zabbix Agent\scripts\ProcessMetrics.ps1"

PowerShell 脚本的内容

Get-Process | Select ProcessName, Id, Description | ConvertTo-Json -Compress

以下是示例结果

[
  {"ProcessName":"chrome","Id":1232,"Description":"G oogle Chrome"},
  {"ProcessName":"chrome","Id":1500,"Description":"G oogle Chrome"}
]

当我启用项目原型时,我看到数据正在提取,但对于 PID 进程,我看到item does allow parameters错误

附有截图

我想知道如何使用一个发现规则提取多个键值对。首先这可能吗?

感谢您对解决此问题的指导。

答案1

我会尝试停止使用用户参数,我通过启用远程命令并使用 system.run 作为密钥的主要部分取得了类似的结果,这样您就不必使用用户参数,而且基本上可以实现任何目标,您只需要在尝试在密钥中使用命令时小心,但也有一些可用的解决方法。请随时提出更多问题,我已经处理这类问题有一段时间了。

答案2

您正在调用用户参数 metric.process.discovery,其中每个项目都使用 [PID] 作为参数,但您没有将此用户参数配置为使用参数。您只能运行不带参数的 metric.process.discovery。

您希望在每件物品中收到什么?

相关内容