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:
ExportFileSizepode 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.
ExportTypepermite 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 |
||
Exemplos de exportação de trends
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}