1 Esporta su file
Panoramica
È possibile configurare l'esportazione in tempo reale degli eventi di trigger, dei valori degli item e dei trend in un formato JSON delimitato da newline.
L'esportazione viene effettuata in file, in cui ogni riga del file di esportazione è un oggetto JSON. Le mappature dei valori non vengono applicate.
In caso di errori (i dati non possono essere scritti nel file di esportazione oppure il file di esportazione non può essere rinominato o non può esserne creato uno nuovo dopo la rinomina), il dato viene scartato e non viene mai scritto nel file di esportazione. Viene scritto solo nel database di Zabbix. La scrittura dei dati nel file di esportazione riprende quando il problema di scrittura viene risolto.
Il file di esportazione viene creato con permessi di lettura e scrittura solo per il proprietario del file. Inoltre, il file è leggibile dal gruppo del proprietario. Tutti gli altri permessi sono negati.
Si noti che host/item può non avere metadati (gruppi host, nome host, nome item) se l'host/item è stato rimosso dopo la ricezione dei dati, ma prima che il server esportasse i dati.
Configurazione
L'esportazione in tempo reale degli eventi dei trigger, dei valori degli item e dei trend viene configurata specificando una directory per i file di esportazione - vedere il parametro ExportDir nella configurazione del server.
Sono disponibili altri due parametri:
ExportFileSizepuò essere usato per impostare la dimensione massima consentita di un singolo file di esportazione. Quando un processo deve scrivere in un file, ne controlla prima la dimensione. Se supera il limite di dimensione configurato, il file viene rinominato aggiungendo .old al nome e viene creato un nuovo file con il nome originale.
Verrà creato un file per ogni processo che scriverà dati (cioè circa 4-30 file). Poiché la dimensione predefinita di ciascun file di esportazione è 1G, mantenere file di esportazione di grandi dimensioni può esaurire rapidamente lo spazio su disco.
ExportTypeconsente di specificare quali tipi di entità (eventi, history, trend) verranno esportati.
Protocollo di esportazione JSON delimitato da newline
Questa sezione presenta i dettagli del protocollo di esportazione in un formato JSON delimitato da newline, utilizzato in:
Tutti i file hanno estensione .ndjson. Ogni riga del file di esportazione è un oggetto JSON.
Esportazione dell'evento trigger
Le seguenti informazioni vengono esportate per un evento di problema:
| Field | Type | Description | ||
|---|---|---|---|---|
| clock | number | Numero di secondi trascorsi dall'Epoch al momento in cui il problema è stato rilevato (parte intera). | ||
| ns | number | Numero di nanosecondi da aggiungere a clock per ottenere un orario preciso di rilevamento del problema. |
||
| value | number | 1 (sempre). | ||
| eventid | number | ID dell'evento di problema. | ||
| name | string | Nome dell'evento di problema. | ||
| severity | number | Gravità dell'evento di problema (0 - Non classificato, 1 - Informazione, 2 - Avviso, 3 - Medio, 4 - Alto, 5 - Disastro). | ||
| hosts | array | Elenco degli host coinvolti nell'espressione del trigger; deve esserci almeno un elemento nell'array. | ||
| - | object | |||
| host | string | Nome dell'host. | ||
| name | string | Nome visibile dell'host. | ||
| groups | array | Elenco dei gruppi di host di tutti gli host coinvolti nell'espressione del trigger; deve esserci almeno un elemento nell'array. | ||
| - | string | Nome del gruppo di host. | ||
| tags | array | Elenco dei tag del problema (può essere vuoto). | ||
| - | object | |||
| tag | string | Nome del tag. | ||
| value | string | Valore del tag (può essere vuoto). | ||
Le seguenti informazioni vengono esportate per un evento di ripristino:
| Field | Type | Description |
|---|---|---|
| clock | number | Numero di secondi trascorsi dall'Epoch al momento in cui il problema è stato risolto (parte intera). |
| ns | number | Numero di nanosecondi da aggiungere a clock per ottenere un orario preciso di risoluzione del problema. |
| value | number | 0 (sempre). |
| eventid | number | ID dell'evento di ripristino. |
| p_eventid | number | ID dell'evento di problema. |
Esempi di esportazione degli eventi 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"}]}
Ripristino:
{"clock":1519304345,"ns":987654321,"value":0,"eventid":43,"p_eventid":42}
Problema (generazione di eventi problema multipli):
{"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"}]}
Ripristino:
{"clock":1519304346,"ns":987654321,"value":0,"eventid":44,"p_eventid":43}
{"clock":1519304346,"ns":987654321,"value":0,"eventid":44,"p_eventid":42}
Esportazione del valore dell'item
Le seguenti informazioni vengono esportate per un valore di item raccolto:
| Field | Type | Description | ||
|---|---|---|---|---|
| host | object | Nome host dell'host dell'item. | ||
| host | string | Nome host. | ||
| name | string | Nome host visibile. | ||
| groups | array | Elenco dei gruppi host dell'host dell'item; nell'array deve essere presente almeno un elemento. | ||
| - | string | Nome del gruppo host. | ||
| item_tags | array | Elenco dei tag dell'item (può essere vuoto). | ||
| - | object | |||
| tag | string | Nome del tag. | ||
| value | string | Valore del tag (può essere vuoto). | ||
| itemid | number | ID dell'item. | ||
| name | string | Nome visibile dell'item. | ||
| clock | number | Numero di secondi trascorsi dall'Epoch al momento in cui il valore è stato raccolto (parte intera). | ||
| ns | number | Numero di nanosecondi da aggiungere a clock per ottenere un tempo di raccolta del valore preciso. |
||
| timestamp (Log only) |
number | 0 se non disponibile. | ||
| source (Log only) |
string | Stringa vuota se non disponibile. | ||
| severity (Log only) |
number | 0 se non disponibile. | ||
| eventid (Log only) |
number | 0 se non disponibile. | ||
| value | number (for numeric items) or string (for text items) |
Valore dell'item raccolto. | ||
| type | number | Tipo di valore raccolto: 0 - numerico float, 1 - carattere, 2 - log, 3 - numerico unsigned, 4 - testo, 5 - binario, 6 - JSON |
||
Esempio di esportazione del valore dell'item
Valore numerico (senza segno):
{"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}
Valore numerico (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}
Valore carattere, testo:
{"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}
Valore di 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}
Esportazione delle tendenze
Le seguenti informazioni vengono esportate per un valore di tendenza calcolato:
| Field | Type | Description | ||
|---|---|---|---|---|
| host | object | Nome host dell'host dell'item. | ||
| host | string | Nome host. | ||
| name | string | Nome host visibile. | ||
| groups | array | Elenco dei gruppi host dell'host dell'item; nell'array deve essere presente almeno un elemento. | ||
| - | string | Nome del gruppo host. | ||
| item_tags | array | Elenco dei tag dell'item (può essere vuoto). | ||
| - | object | |||
| tag | string | Nome del tag. | ||
| value | string | Valore del tag (può essere vuoto). | ||
| itemid | number | ID dell'item. | ||
| name | string | Nome visibile dell'item. | ||
| clock | number | Numero di secondi dall'Epoch al momento in cui il valore è stato raccolto (parte intera). | ||
| count | number | Numero di valori raccolti per una determinata ora. | ||
| min | number | Valore minimo dell'item per una determinata ora. | ||
| avg | number | Valore medio dell'item per una determinata ora. | ||
| max | number | Valore massimo dell'item per una determinata ora. | ||
| type | number | Tipo di valore: 0 - float numerico, 3 - unsigned numerico |
||
Esempi di esportazione delle tendenze
Valore numerico (unsigned):
{"host":{"host":"Host B","name":"Host B visible"},"groups":["Group X","Group Y","Group Z"],"item_tags":[{"tag":"foo","value":"test"}],"itemid":3,"name":"Disponibilità dell'agent","clock":1519311600,"count":60,"min":1,"avg":1,"max":1,"type":3}
Valore numerico (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":"Carico CPU","clock":1519311600,"count":60,"min":0.01,"avg":0.15,"max":1.5,"type":0}