PRTG 自定义脚本 returns 有效 XML 但仪表板抱怨

PRTG custom script returns valid XML but dashboard complains

我在 PRTG 仪表板中配置的 EXEXML 目录中有一个 PRTG 自定义脚本。

当我手动 运行 时,我得到以下输出,据我所知,这是完全有效的:

<prtg>
  <result>
    <channel>MaxCPUWL1</channel>
    <value>113</value>
  </result>
  <text>OK</text>
</prtg>

事实上,我有 另一个 脚本,它生成几乎相同的格式,包括行末尾相同的 CR/LF 序列:

<prtg>
  <result>
    <channel>Item age</channel>
    <value>14</value>
  </result>
  <text>April 15, 2015</text>
</prtg>

我什至详细检查了两者的输出以确保我没有做一些愚蠢的事情,比如使用 channe1 (用一个)而不是 channel (用 L).

然而,对于第一个,我一直进入仪表板:

XML: The returned xml does not match the expected schema. (code: PE233) -- JSON: The returned json does not match the expected structure (Invalid JSON.). (code: PE231)

可能是什么导致了这个问题?

如果您编辑传感器的属性,您可以在特定条件下捕获可执行文件的输出:

o Discard EXE result
o Write EXE result to disk
o Write EXE result to disk in case of error

查看您的自定义传感器正在做什么的一个好方法是设置中间选项(通常设置第一个)然后去寻找文件 Result of Sensor XXXX.txt(其中 XXXX 是传感器日志目录中的传感器 ID),例如:

C:\ProgramData\Paessler\PRTG Network Monitor\Logs (Sensors)

这应该向您显示脚本中发生的任何错误,或者至少是混淆 PRTG 传感器输出分析的输出。

在这个特殊的案例中,运行 pscp 命令从远程服务器检索文件时遇到了问题,但这方法应该能够评估和解决各种各样的问题。