Sidebar

Become a monitoring expert!
Sign up for Zabbix training

5 Pré-processamento CSV para JSON

Visão geral

Nesta etapa de pré-processamento é possível converter arquivo de dado CSV para formato JSON. É suportado em:

  • itens (protótipos de item)
  • regras de descoberta de baixo-nível

Configuração

Para configurar uma etapa de pré-processamento CSV para JSON:

  • Vá até a aba de Pré-processamento na configuração item/regra de descoberta
  • Clique em Adicionar
  • Selecione a opção CSV para JSON

O primeiro parâmetro permite definir um delimitador customizado. Note que se a primeira linha da entrada CSV começa com "Sep=" e é seguida por um caracter UTF-8 único esse caracter será usado como o delimitador no caso de o primeiro parâmetro não estar definido. Se o primeiro parâmetro não estiver definido e um delimitar não for recuperado da linha "Sep=", então uma vírgula é usada como separador.

O segundo parâmetro opcional permite definir um símbolo para quotação.

Se a caixa Com linha de cabeçalho estiver marcada, o valor da linha de cabeçalho será interpretada como nomes de coluna (veja Processamento de cabeçalho para mais informações).

Se a caixa Customizado em caso de falha estiver marcada, o item não se tornará não suportado no caso de uma etapa de pré-processamento falha. Adicionalmente opções de manipulação de erro podem ser definidas: descarte o valor, defina um valor especificado ou defina uma mensagem de erro especificada.

Processamento de cabeçalho

A linha de cabeçalho do arquivo CSV pode ser processada em duas formas diferentes:

  • Se a caixa Com linha de cabeçalho estiver marcada - os valores da linha são interpretados como nomes de coluna. Neste caso os nomes de coluna devem ser únicos e a linha de dado não deve conter mais colunas do que a linha de cabeçalho;
  • Se a caixa Com linha de cabeçalho não estiver marcada - a linha de cabeçalho é interpretada como dado. Os nomes de coluna são gerados automaticamente (1,2,3,4...)

Exemplo de arquivo 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

Um caracter de quotação dentro de um campo quotado na entrada deve ser escapado precedendo-o com outro caracter de quotação.

Processando linha de cabeçalho

Saída JSON quando uma linha de cabeçalho é esperada:

[
          {
             "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"
          }
       ]

Sem processamento de linha de cabeçalho

Saída JSON quando uma linha de cabeçalho não é esperada:

[
          {
             "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"
          }
       ]