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 :
ExportFileSizepeut ê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.
ExportTypepermet 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}