【问题标题】:Zabbix pre-processing item get item within an array with javascriptZabbix预处理项目使用javascript获取数组中的项目
【发布时间】:2021-02-19 01:24:13
【问题描述】:

我对 Javascript 没有任何经验,因此我正在与社区联系以完成以下工作。 我在 Zabbix 上配置了一些 API 调用,它们运行良好。问题是,并不是一个项目中的所有结果对我来说都很重要,所以我需要从数组中获取我想要的内容。

我正在使用 Zabbix 上的预处理选项来获取我想要的内容,但我无法正确获取代码。

例如,下面是 Zabbix 得到的结果之一。

[
{
    "batteryLife": "15 minutes",
    "communityString": "public",
    "instanceId": "260596.1",
    "instanceName": "UPS-01",
    "ipAddress": "10.1.100.44",
    "modelNumber": "GXT4-10000RT230",
    "name": "UPS-01",
    "objectType": "ScUps",
    "scName": "pth-pf-04",
    "scSerialNumber": 260596,
    "serialNumber": "unknown",
    "status": "Up",
    "statusDescription": "Online",
    "type": "Liebert"
}

]

我如何使用预处理来获取例如“ipAddress”值?

感谢您的帮助。 皮特夫

【问题讨论】:

    标签: api zabbix


    【解决方案1】:

    您可以避免使用 JSONPath 预处理的 JavaScript 预处理,请参阅https://www.zabbix.com/documentation/current/manual/config/items/preprocessing/jsonpath_functionality

    在你的情况下:

    $[0].ipAddress
    

    一个有用的 JSONPath 工具是http://jsonpath.com/

    【讨论】:

    • 我个人不知道 Zabbix 中的其他选项。我会试试看。感谢您提供有用的链接。
    • 我确认您发布的内容对我的情况有效,而且我还学到了一些新东西。感谢您展示这种在我看来更容易的其他方式。
    【解决方案2】:

    如果有人和我有同样的疑问,我是如何让它返回“ipAdress”值的

    var json = JSON.parse(value);
    return json.ipAddress;
    

    如果一个数组中有多个字典。

    var json = JSON.parse(value);
    return json[0].ipAddress;
    

    【讨论】:

      猜你喜欢
      • 2020-08-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-11
      • 2012-06-02
      • 1970-01-01
      • 2011-11-21
      • 2021-06-24
      相关资源
      最近更新 更多