这是原厂英文文档的翻译页面. 欢迎帮助我们 完善文档.
2022 Zabbix中国峰会
2022 Zabbix中国峰会

5 CSV 转换成 JSON 预处理

概述

在预处理的步骤中,可以将CSV文件数据转换为JSON格式,支持项目如下:

  • 监控项 (监控项原型)
  • 低级别自动发现

配置

配置CSV到JSON的预处理步骤:

第一个参数允许设置自定义分隔符。请注意,如果CSV输入的第一行以“Sep=”开头,后跟一个UTF-8字符,则在未设置第一个参数的情况下,该字符将用作分隔符。如果未设置第一个参数,且未从“Sep=”行检索到分隔符,则使用逗号作为分隔符。

第二个可选参数允许设置引号符号。

如果勾选 With header row ,标题行值将被解释为列名 (详见标题预处理 了解更多信息)。

如果勾选 Custom on fail ,那么在预处理步骤失败的情况下,该监控项项将不会不受支持。另外,可以设置自定义错误处理选项:丢弃该值,设置指定值或设置指定的错误消息。

标题预处理

CSV文件标题行可以用两种不同的方式处理:

  • 如果勾选With header row - 标题行值被解释为列名。在这种情况下,列名必须是唯一的,数据行不应该包含比标题行更多的列;
  • 如果勾选 With header row - 标题行解释为数据。自动生成列名(1,2,3,4…)

CSV 文件示例:

Nr,Item name,Key,Qty
       1,active agent item,agent.hostname,33
       "2","passive agent item","agent.version","44"
       3,"active,passive agent items",agent.ping,55

输入中的引号字段中的引号字符必须在其前面加上另一个引号字符进行转义。

有标题行预处理

有标题行预处理时期望JSON的输出:

[
          {
             "Nr":"1",
             "Item name":"active agent item",
             "Key":"agent.hostname",
             "Qty":"33"
          },
          {
             "Nr":"2",
             "Item name":"passive agent item",
             "Key":"agent.version",
             "Qty":"44"
          },
          {
             "Nr":"3",
             "Item name":"active,passive agent items",
             "Key":"agent.ping",
             "Qty":"55"
          }
       ]

无标题行预处理

无标题行预处理时期望JSON的输出:

[
          {
             "1":"Nr",
             "2":"Item name",
             "3":"Key"
             "4":"Qty"
          },
          {
             "1":"1",
             "2":"active agent item",
             "3":"agent.hostname"
             "4":"33"
          },
          {
             "1":"2",
             "2":"passive agent item",
             "3":"agent.version"
             "4":"44"
          },
          {
             "1":"3",
             "2":"active,passive agent items",
             "3":"agent.ping"
             "4":"55"
          }
       ]