Sidebar

Zabbix Summit 2022
Register for Zabbix Summit 2022

5 CSVからJSONへのプリプロセス

概要

このプリプロセスで、CSVファイルのデータをJSON形式に変換することが可能です。サポートしているのは

  • items (item prototypes)
  • low-level discovery rules

設定

CSVからJSONへのプリプロセスステップを設定する場合:

  • item のPreprocessing タブ/ discovery rule の設定にアクセスします。
  • Addをクリックします。
  • CSV to JSONオプションを選択します。

1番目のパラメータで、カスタムデリミタを設定することができます。CSV入力の最初の行が "Sep="で始まり、
UTF-8文字が1つ続く場合、最初のパラメータが設定されていない場合、その文字がデリミタとして使用されることに注意ください。
1番目のパラメータが設定されておらず、かつ "Sep="行からデリミタが取得できない場合は、カンマがセパレーターとして使用されます。

オプションの第2パラメータには、引用記号を設定することができます。

With header row チェックボックスがマークされている場合、ヘッダ行の値は列名として解釈されます
(詳しくは Header processing を参照してください)。

Custom on fail チェックボックスがマークされている場合、プリプロセスが失敗しても、その item はサポートされなくなることはありません。
さらに、カスタムエラー処理オプションを設定することができます:
値を破棄する、指定した値を設定する、指定したエラーメッセージを設定する。

ヘッダー処理

CSVファイルのヘッダ行は、2種類の方法で処理することができます。

  • 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"
          }
       ]