Exportar para arquivos

Visão geral

É possível configurar a exportação em tempo real de eventos de trigger, valores de item e tendências em um formato JSON delimitado por nova linha.

A exportação é feita em arquivos, em que cada linha do arquivo de exportação é um objeto JSON. Os mapeamentos de valores não são aplicados.

Em caso de erros (os dados não podem ser gravados no arquivo de exportação, ou o arquivo de exportação não pode ser renomeado, ou um novo não pode ser criado após a renomeação), o item de dados é descartado e nunca é gravado no arquivo de exportação. Ele é gravado apenas no banco de dados do Zabbix. A gravação de dados no arquivo de exportação é retomada quando o problema de gravação for resolvido.

O arquivo de exportação é criado com permissões de leitura e gravação apenas para o proprietário do arquivo. Além disso, o arquivo pode ser lido pelo grupo do proprietário. Todas as outras permissões são negadas.

Observe que host/item pode não ter metadados (grupos de host, nome do host, nome do item) se o host/item tiver sido removido após os dados terem sido recebidos, mas antes de o server exportar os dados.

Configuração

A exportação em tempo real de eventos de trigger, valores de item e trends é configurada especificando um diretório para os arquivos de exportação - consulte o parâmetro ExportDir na configuração do server.

Dois outros parâmetros estão disponíveis:

  • ExportFileSize pode ser usado para definir o tamanho máximo permitido de um arquivo de exportação individual. Quando um processo precisa gravar em um arquivo, ele verifica primeiro o tamanho do arquivo. Se ele exceder o limite de tamanho configurado, o arquivo é renomeado com a adição de .old ao nome e um novo arquivo com o nome original é criado.

Um arquivo será criado para cada processo que gravará dados (ou seja, aproximadamente 4-30 arquivos). Como o tamanho padrão por arquivo de exportação é 1G, manter arquivos de exportação grandes pode consumir o espaço em disco rapidamente.

  • ExportType permite especificar quais tipos de entidade (events, history, trends) serão exportados.

Protocolo de exportação JSON delimitado por nova linha

Esta seção apresenta detalhes do protocolo de exportação em um formato JSON delimitado por nova linha, usado em:

Todos os arquivos têm a extensão .ndjson. Cada linha do arquivo de exportação é um objeto JSON.

Exportação de evento de trigger

As seguintes informações são exportadas para um evento de problema:

Field Type Description
clock number Número de segundos desde a Epoch até o momento em que o problema foi detectado (parte inteira).
ns number Número de nanossegundos a serem adicionados a clock para obter o momento exato da detecção do problema.
value number 1 (sempre).
eventid number ID do evento de problema.
name string Nome do evento de problema.
severity number Severidade do evento de problema (0 - Não classificado, 1 - Informação, 2 - Aviso, 3 - Médio, 4 - Alto, 5 - Desastre).
hosts array Lista de hosts envolvidos na expressão do trigger; deve haver pelo menos um elemento no array.
- object
host string Nome do host.
name string Nome visível do host.
groups array Lista de grupos de hosts de todos os hosts envolvidos na expressão do trigger; deve haver pelo menos um elemento no array.
- string Nome do grupo de hosts.
tags array Lista de tags do problema (pode estar vazia).
- object
tag string Nome da tag.
value string Valor da tag (pode estar vazio).

As seguintes informações são exportadas para um evento de recuperação:

Field Type Description
clock number Número de segundos desde a Epoch até o momento em que o problema foi resolvido (parte inteira).
ns number Número de nanossegundos a serem adicionados a clock para obter o momento exato da resolução do problema.
value number 0 (sempre).
eventid number ID do evento de recuperação.
p_eventid number ID do evento de problema.
Exemplos de exportação de eventos de trigger

Problema:

{"clock":1519304285,"ns":123456789,"value":1,"name":"Either Zabbix agent is unreachable on Host B or pollers are too busy on Zabbix Server","severity":3,"eventid":42, "hosts":[{"host":"Host B", "name":"Host B visible"},{"host":"Zabbix Server","name":"Zabbix Server visible"}],"groups":["Group X","Group Y","Group Z","Zabbix servers"],"tags":[{"tag":"availability","value":""},{"tag":"data center","value":"Riga"}]}

Recuperação:

{"clock":1519304345,"ns":987654321,"value":0,"eventid":43,"p_eventid":42}

Problema (geração de múltiplos eventos de problema):

{"clock":1519304286,"ns":123456789,"value":1,"eventid":43,"name":"Either Zabbix agent is unreachable on Host B or pollers are too busy on Zabbix Server","severity":3,"hosts":[{"host":"Host B", "name":"Host B visible"},{"host":"Zabbix Server","name":"Zabbix Server visible"}],"groups":["Group X","Group Y","Group Z","Zabbix servers"],"tags":[{"tag":"availability","value":""},{"tag":"data center","value":"Riga"}]}

{"clock":1519304286,"ns":123456789,"value":1,"eventid":43,"name":"Either Zabbix agent is unreachable on Host B or pollers are too busy on Zabbix Server","severity":3,"hosts":[{"host":"Host B", "name":"Host B visible"},{"host":"Zabbix Server","name":"Zabbix Server visible"}],"groups":["Group X","Group Y","Group Z","Zabbix servers"],"tags":[{"tag":"availability","value":""},{"tag":"data center","value":"Riga"}]}

Recuperação:

{"clock":1519304346,"ns":987654321,"value":0,"eventid":44,"p_eventid":43}

{"clock":1519304346,"ns":987654321,"value":0,"eventid":44,"p_eventid":42}

Exportação de valor de item

As seguintes informações são exportadas para um valor de item coletado:

Field Type Description
host object Nome do host do item.
host string Nome do host.
name string Nome visível do host.
groups array Lista de grupos de host do host do item; deve haver pelo menos um elemento no array.
- string Nome do grupo de host.
item_tags array Lista de tags do item (pode estar vazia).
- object
tag string Nome da tag.
value string Valor da tag (pode estar vazio).
itemid number ID do item.
name string Nome visível do item.
clock number Número de segundos desde a Epoch até o momento em que o valor foi coletado (parte inteira).
ns number Número de nanossegundos a serem adicionados a clock para obter um horário preciso de coleta do valor.
timestamp
(Log only)
number 0 se não estiver disponível.
source
(Log only)
string String vazia se não estiver disponível.
severity
(Log only)
number 0 se não estiver disponível.
eventid
(Log only)
number 0 se não estiver disponível.
value number (for numeric items) or
string (for text items)
Valor do item coletado.
type number Tipo do valor coletado:
0 - float numérico, 1 - caractere, 2 - log, 3 - inteiro sem sinal, 4 - texto, 5 - binário, 6 - JSON
Exemplo de exportação de valor de item

Valor numérico (sem sinal):

{"host":{"host":"Host B","name":"Host B visible"},"groups":["Group X","Group Y","Group Z"],"item_tags":[{"tag":"foo","value":"test"}],"itemid":3,"name":"Agent availability","clock":1519304285,"ns":123456789,"value":1,"type":3}

Valor numérico (float):

{"host":{"host":"Host B","name":"Host B visible"},"groups":["Group X","Group Y","Group Z"],"item_tags":[{"tag":"foo","value":"test"}],"itemid":4,"name":"CPU Load","clock":1519304285,"ns":123456789,"value":0.1,"type":0}

Valor de caractere, texto:

{"host":{"host":"Host B","name":"Host B visible"},"groups":["Group X","Group Y","Group Z"],"item_tags":[{"tag":"foo","value":"test"}],"itemid":2,"name":"Agent version","clock":1519304285,"ns":123456789,"value":"3.4.4","type":4}

Valor de log:

{"host":{"host":"Host A","name":"Host A visible"},"groups":["Group X","Group Y","Group Z"],"item_tags":[{"tag":"foo","value":"test"}],"itemid":1,"name":"Messages in log file","clock":1519304285,"ns":123456789,"timestamp":1519304285,"source":"","severity":0,"eventid":0,"value":"log file message","type":2}

Exportação de tendências

As seguintes informações são exportadas para um valor de tendência calculado:

Field Type Description
host object Nome do host do host do item.
host string Nome do host.
name string Nome visível do host.
groups array Lista de grupos de host do host do item; deve haver pelo menos um elemento no array.
- string Nome do grupo de host.
item_tags array Lista de tags do item (pode estar vazia).
- object
tag string Nome da tag.
value string Valor da tag (pode estar vazio).
itemid number ID do item.
name string Nome visível do item.
clock number Número de segundos desde a Epoch até o momento em que o valor foi coletado (parte inteira).
count number Número de valores coletados para uma determinada hora.
min number Valor mínimo do item para uma determinada hora.
avg number Valor médio do item para uma determinada hora.
max number Valor máximo do item para uma determinada hora.
type number Tipo de valor:
0 - float numérico, 3 - inteiro sem sinal

Valor numérico (sem sinal):

{"host":{"host":"Host B","name":"Host B visible"},"groups":["Group X","Group Y","Group Z"],"item_tags":[{"tag":"foo","value":"test"}],"itemid":3,"name":"Agent availability","clock":1519311600,"count":60,"min":1,"avg":1,"max":1,"type":3}

Valor numérico (float):

{"host":{"host":"Host B","name":"Host B visible"},"groups":["Group X","Group Y","Group Z"],"item_tags":[{"tag":"foo","value":"test"}],"itemid":4,"name":"CPU Load","clock":1519311600,"count":60,"min":0.01,"avg":0.15,"max":1.5,"type":0}