Export vers des fichiers

Vue d'ensemble

Il est possible de configurer l'export en temps réel des événements de déclencheur, des valeurs d'élément et des tendances dans un format JSON délimité par des sauts de ligne.

L'export est effectué dans des fichiers, où chaque ligne du fichier d'export est un objet JSON. Les correspondances de valeurs ne sont pas appliquées.

En cas d'erreurs (les données ne peuvent pas être écrites dans le fichier d'export, ou le fichier d'export ne peut pas être renommé, ou un nouveau fichier ne peut pas être créé après son renommage), l'élément de données est ignoré et n'est jamais écrit dans le fichier d'export. Il est écrit uniquement dans la base de données Zabbix. L'écriture des données dans le fichier d'export reprend lorsque le problème d'écriture est résolu.

Le fichier d'export est créé avec des permissions de lecture et d'écriture uniquement pour le propriétaire du fichier. De plus, le fichier est lisible par le groupe du propriétaire. Toutes les autres permissions sont refusées.

Notez que l'hôte/l'élément peut ne contenir aucune métadonnée (groupes d'hôtes, nom d'hôte, nom de l'élément) si l'hôte/l'élément a été supprimé après la réception des données, mais avant que le serveur n'ait exporté les données.

Configuration

L'export en temps réel des événements de déclencheur, des valeurs d'élément et des tendances est configuré en spécifiant un répertoire pour les fichiers d'export - voir le paramètre ExportDir dans la configuration du serveur.

Deux autres paramètres sont disponibles :

  • ExportFileSize peut être utilisé pour définir la taille maximale autorisée d'un fichier d'export individuel. Lorsqu'un processus doit écrire dans un fichier, il vérifie d'abord la taille du fichier. Si elle dépasse la limite de taille configurée, le fichier est renommé en ajoutant .old à son nom et un nouveau fichier portant le nom d'origine est créé.

Un fichier sera créé pour chaque processus qui écrira des données (c'est-à-dire environ 4 à 30 fichiers). Comme la taille par défaut de chaque fichier d'export est de 1G, conserver de gros fichiers d'export peut rapidement épuiser l'espace disque.

  • ExportType permet de spécifier quels types d'entités (événements, historique, tendances) seront exportés.

Protocole d'exportation JSON délimité par des sauts de ligne

Cette section présente les détails du protocole d'exportation dans un format JSON délimité par des sauts de ligne, utilisé dans :

Tous les fichiers ont une extension .ndjson. Chaque ligne du fichier d'exportation est un objet JSON.

Exportation d'un événement de déclencheur

Les informations suivantes sont exportées pour un événement de problème :

Field Type Description
clock number Nombre de secondes écoulées depuis l'époque Unix jusqu'au moment où le problème a été détecté (partie entière).
ns number Nombre de nanosecondes à ajouter à clock pour obtenir l'heure précise de détection du problème.
value number 1 (toujours).
eventid number ID de l'événement de problème.
name string Nom de l'événement de problème.
severity number Niveau de gravité de l'événement de problème (0 - Non classé, 1 - Information, 2 - Avertissement, 3 - Moyen, 4 - Élevé, 5 - Désastre).
hosts array Liste des hôtes impliqués dans l'expression du déclencheur ; il doit y avoir au moins un élément dans le tableau.
- object
host string Nom de l'hôte.
name string Nom visible de l'hôte.
groups array Liste des groupes d'hôtes de tous les hôtes impliqués dans l'expression du déclencheur ; il doit y avoir au moins un élément dans le tableau.
- string Nom du groupe d'hôtes.
tags array Liste des tags du problème (peut être vide).
- object
tag string Nom du tag.
value string Valeur du tag (peut être vide).

Les informations suivantes sont exportées pour un événement de récupération :

Field Type Description
clock number Nombre de secondes écoulées depuis l'époque Unix jusqu'au moment où le problème a été résolu (partie entière).
ns number Nombre de nanosecondes à ajouter à clock pour obtenir l'heure précise de résolution du problème.
value number 0 (toujours).
eventid number ID de l'événement de récupération.
p_eventid number ID de l'événement de problème.
Exemples d'export d'événement de déclencheur

Problème :

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

Rétablissement :

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

Problème (génération de plusieurs événements de problème) :

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

Rétablissement :

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

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

Export de la valeur d'élément

Les informations suivantes sont exportées pour une valeur d'élément collectée :

Field Type Description
host object Nom d'hôte de l'hôte de l'élément.
host string Nom d'hôte.
name string Nom visible de l'hôte.
groups array Liste des groupes d'hôtes de l'hôte de l'élément ; il doit y avoir au moins un élément dans le tableau.
- string Nom du groupe d'hôtes.
item_tags array Liste des tags de l'élément (peut être vide).
- object
tag string Nom du tag.
value string Valeur du tag (peut être vide).
itemid number ID de l'élément.
name string Nom visible de l'élément.
clock number Nombre de secondes écoulées depuis l'Epoch au moment où la valeur a été collectée (partie entière).
ns number Nombre de nanosecondes à ajouter à clock pour obtenir une heure de collecte de valeur précise.
timestamp
(Log only)
number 0 si non disponible.
source
(Log only)
string Chaîne vide si non disponible.
severity
(Log only)
number 0 si non disponible.
eventid
(Log only)
number 0 si non disponible.
value number (for numeric items) or
string (for text items)
Valeur de l'élément collectée.
type number Type de valeur collectée :
0 - flottant numérique, 1 - caractère, 2 - log, 3 - entier non signé, 4 - texte, 5 - binaire, 6 - JSON
Exemple d'export de valeur d'élément

Valeur numérique (entier non signé) :

{"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é de l'agent","clock":1519304285,"ns":123456789,"value":1,"type":3}

Valeur numérique (flottante) :

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

Valeur de caractère, texte :

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

Valeur de journal :

{"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 dans le fichier journal","clock":1519304285,"ns":123456789,"timestamp":1519304285,"source":"","severity":0,"eventid":0,"value":"message du fichier journal","type":2}

Export des tendances

Les informations suivantes sont exportées pour une valeur de tendance calculée :

Field Type Description
host object Nom de l'hôte de l'élément.
host string Nom de l'hôte.
name string Nom visible de l'hôte.
groups array Liste des groupes d'hôtes de l'hôte de l'élément ; il doit y avoir au moins un élément dans le tableau.
- string Nom du groupe d'hôtes.
item_tags array Liste des balises de l'élément (peut être vide).
- object
tag string Nom de la balise.
value string Valeur de la balise (peut être vide).
itemid number ID de l'élément.
name string Nom visible de l'élément.
clock number Nombre de secondes écoulées depuis l'époque Unix au moment où la valeur a été collectée (partie entière).
count number Nombre de valeurs collectées pour une heure donnée.
min number Valeur minimale de l'élément pour une heure donnée.
avg number Valeur moyenne de l'élément pour une heure donnée.
max number Valeur maximale de l'élément pour une heure donnée.
type number Type de valeur :
0 - flottant numérique, 3 - entier non signé
Exemples d'exportation des tendances

Valeur numérique (entier non signé) :

{"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é de l'agent","clock":1519311600,"count":60,"min":1,"avg":1,"max":1,"type":3}

Valeur numérique (flottante) :

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