1 Création d'un élément

Vue d'ensemble

Pour créer un élément dans l'interface Zabbix, procédez comme suit :

  • Allez dans : Data collection > Hosts
  • Cliquez sur Items dans la ligne de l'hôte
  • Cliquez sur Create item dans le coin supérieur droit de l'écran
  • Saisissez les paramètres de l'élément dans le formulaire

Vous pouvez également créer un élément en ouvrant un élément existant, en cliquant sur le bouton Clone, puis en l'enregistrant sous un autre nom.

Configuration

L'onglet Item contient les attributs généraux de l'élément.

Tous les champs obligatoires sont marqués d'un astérisque rouge.

Parameter Description
Name Nom de l'élément.
Les macros utilisateur sont prises en charge.
Type Type d'élément. Voir les sections individuelles sur les types d'élément.
Key Clé de l'élément (jusqu'à 2048 caractères).
Les clés d'élément prises en charge peuvent être consultées dans les sections individuelles des types d'élément.
La clé doit être unique au sein d'un même hôte.
Si le type de clé est 'Zabbix agent', 'Zabbix agent (active)' ou 'Simple check', la valeur de la clé doit être prise en charge par Zabbix agent ou Zabbix serveur.
Voir aussi: le format de clé correct.
Type of information Le type de données utilisé pour valider la valeur de l'élément et la stocker dans la base de données, après d'éventuelles conversions :
Numeric (unsigned) - entier non signé 64 bits;
Numeric (float) - nombre à virgule flottante 64 bits;
Character - texte court;
Log - texte long avec ou sans propriétés de journal (horodatage, source, gravité, ID d'événement de journal);
Text - texte long;
Binary - nombre binaire (pris en charge uniquement pour les éléments dépendants);
JSON - données JSON structurées, stockées nativement dans la base de données (non pris en charge pour les éléments calculés).
Les éléments renvoyant des valeurs avec le type de données binaire ou JSON ne sont pas pris en charge dans les formules d'éléments calculés ni dans les expressions de déclencheur.
Voir les limites des données d'élément pour les limites de stockage par type de données et backend de base de données.
Pour les éléments qui renvoient des données dans un format spécifique unique, un type de données correspondant est sélectionné automatiquement - par exemple, system.cpu.load et system.cpu.util renvoient tous deux un nombre à virgule flottante 64 bits, donc Numeric (float) est sélectionné automatiquement.
Host interface Sélectionnez l'interface de l'hôte. Ce champ est disponible lors de la modification d'un élément au niveau de l'hôte.
Units Si un symbole d'unité est défini, Zabbix applique un post-traitement à la valeur reçue de l'élément et l'affiche avec le suffixe d'unité spécifié.
Symboles d'unité pris en charge avec formatage spécial (et exemples de valeur reçue de l'élément → valeur affichée) :
B - octets (1024 → 1 KB)
Bps - octets par seconde (1024 → 1 KBps)
s - secondes, affichées en utilisant jusqu'à trois unités de temps non nulles les plus grandes (881764 → 10d 4h 56m)
uptime - temps écoulé au format hh:mm:ss ou N days, hh:mm:ss (881764 → 10 days, 04:56:04)
unixtime - horodatage Unix, formaté comme yyyy.mm.dd hh:mm:ss (881764 → 1970-01-11 04:56:04 AM); pour un formatage correct, la valeur reçue de l'élément doit être Numeric (unsigned).
Pour les autres unités (telles que Hz, W, etc.), si la valeur reçue dépasse 1000, elle est divisée par 1000 et affichée avec un préfixe correspondant (5000 → 5 KHz, 881764 → 881.76 KW).
Si le symbole d'unité est précédé de !, la conversion d'unité et l'ajout de préfixe sont désactivés (1024 !B → 1024 B, 61 !s → 61 s).
Pour plus d'exemples et de détails sur les symboles d'unité et la conversion d'unité, voir Suffixes de valeur d'élément.
Update interval Récupérer une nouvelle valeur pour cet élément toutes les N secondes. L'intervalle de mise à jour maximal autorisé est de 86400 secondes (1 jour).
Les suffixes de temps sont pris en charge, par exemple 30s, 1m, 2h, 1d.
Les macros utilisateur sont prises en charge.
Une seule macro doit remplir tout le champ. Plusieurs macros dans un champ ou des macros mélangées avec du texte ne sont pas prises en charge.
Note : l'intervalle de mise à jour ne peut être défini sur '0' que si des intervalles personnalisés existent avec une valeur non nulle. S'il est défini sur '0' et qu'un intervalle personnalisé (flexible ou planifié) existe avec une valeur non nulle, l'élément sera interrogé pendant la durée de l'intervalle personnalisé.
Note que la première interrogation de l'élément après son activation ou après un changement d'intervalle de mise à jour peut se produire plus tôt que la valeur configurée.
Les nouveaux éléments seront vérifiés dans les 60 secondes suivant leur création, sauf s'ils ont un intervalle de mise à jour Planification ou Flexible et que Update interval est défini sur 0.
Un élément passif existant peut être interrogé immédiatement en cliquant sur le bouton Execute now button.
Custom intervals Vous pouvez créer des règles personnalisées pour la vérification de l'élément :
Flexible - créer une exception à Update interval (intervalle avec une fréquence différente).
Scheduling - créer un planning d'interrogation personnalisé.
Pour des informations détaillées, voir Intervalles personnalisés.
Les suffixes de temps sont pris en charge dans le champ Interval, par exemple 30s, 1m, 2h, 1d.
Les macros utilisateur sont prises en charge.
Une seule macro doit remplir tout le champ. Plusieurs macros dans un champ ou des macros mélangées avec du texte ne sont pas prises en charge.
Timeout Définissez le délai d'attente de la vérification de l'élément (disponible pour les types d'élément pris en charge). Sélectionnez l'option de délai d'attente :
Global - le délai d'attente du proxy/global est utilisé (affiché dans le champ Timeout grisé).
Override - un délai d'attente personnalisé est utilisé (défini dans le champ Timeout ; plage autorisée : 1 - 600s). Les suffixes de temps, par exemple 30s, 1m, et les macros utilisateur sont pris en charge.
En cliquant sur le lien Timeouts, vous pouvez configurer les délais d'attente du proxy ou les délais d'attente globaux (si aucun proxy n'est utilisé). Notez que le lien Timeouts n'est visible que pour les utilisateurs de type Super admin disposant des autorisations sur les sections de l'interface Administration > General ou Administration > Proxies.
History Sélectionnez l'une des options suivantes :
Do not store - l'historique de l'élément n'est pas stocké. Utile pour les éléments maîtres si seuls les éléments dépendants doivent conserver l'historique.
Ce paramètre ne peut pas être remplacé par les paramètres globaux du housekeeper.
Store up to - spécifiez la durée de conservation de l'historique détaillé dans la base de données (de 1 heure à 25 ans). Les données plus anciennes seront supprimées par le housekeeper. Stocké en secondes.
Les suffixes de temps sont pris en charge, par exemple 2h, 1d. Les macros utilisateur sont prises en charge.
La valeur Store up to peut être remplacée globalement dans Administration > Housekeeping.
Si un paramètre global de remplacement existe, une icône d'information orange est affichée. Si vous placez le curseur de la souris dessus, un message d'avertissement s'affiche, par exemple Overridden by global housekeeper settings (1d).
Il est recommandé de conserver les valeurs enregistrées pendant la durée la plus courte possible afin de réduire la taille de l'historique des valeurs dans la base de données. Au lieu de stocker un long historique de valeurs, vous pouvez conserver des données de tendances sur une période plus longue.
Voir aussi Historique et tendances.
Trends Sélectionnez l'une des options suivantes :
Do not store - les tendances ne sont pas stockées.
Ce paramètre ne peut pas être remplacé par les paramètres globaux du housekeeper.
Store up to - spécifiez la durée de conservation de l'historique agrégé (min, max, moy, count horaires) dans la base de données (de 1 jour à 25 ans). Les données plus anciennes seront supprimées par le housekeeper. Stocké en secondes.
Les suffixes de temps sont pris en charge, par exemple 24h, 1d. Les macros utilisateur sont prises en charge.
La valeur Store up to peut être remplacée globalement dans Administration > Housekeeping.
Si un paramètre global de remplacement existe, une icône d'information orange est affichée. Si vous placez le curseur de la souris dessus, un message d'avertissement s'affiche, par exemple Overridden by global housekeeper settings (7d).
Note: La conservation des tendances n'est pas disponible pour les données non numériques - character, log et text.
Voir aussi Historique et tendances.
Value mapping Appliquer un mappage de valeurs à cet élément. Le mappage de valeurs ne modifie pas les valeurs reçues, il sert uniquement à l'affichage des données.
Il fonctionne avec les éléments Numeric(unsigned), Numeric(float) et Character.
Par exemple, "Windows service states".
Log time format Disponible uniquement pour les éléments de type Log. Espaces réservés pris en charge :
y : Année (1970-2038).
M : Mois (01-12).
d : Jour (01-31).
h : Heure (00-23).
m : Minute (00-59).
s : Seconde (00-59).
Si laissé vide, l'horodatage sera défini sur 0 en temps Unix, représentant le 1er janvier 1970.
Par exemple, considérez la ligne suivante du fichier journal de l'agent Zabbix :
" 23480:20100328:154718.045 Zabbix agent started. Zabbix 1.8.2 (revision 11211)."
Elle commence par six positions de caractères pour le PID, suivies de la date, de l'heure et du reste du message.
Le format d'heure du journal pour cette ligne serait "pppppp:yyyyMMdd:hhmmss".
Notez que les caractères "p" et ":" sont des espaces réservés et peuvent être n'importe quels caractères sauf "yMdhms".
Populates host inventory field Vous pouvez sélectionner un champ d'inventaire de l'hôte que la valeur de l'élément renseignera. Cela fonctionnera si le remplissage automatique de l'inventaire est activé pour l'hôte et avec les éléments Numeric(unsigned), Numeric(float), Character et Text.
Description Saisissez une description de l'élément. Les macros utilisateur sont prises en charge.
Enabled Cochez la case pour activer l'élément afin qu'il soit traité.
Lorsque vous désactivez l'élément, il est immédiatement supprimé du cache d'historique (sauf sa dernière valeur, qui est conservée pour les journaux).
Latest data Cliquez sur le lien pour afficher les dernières données de l'élément.
Ce lien n'est disponible que lors de la modification d'un élément déjà existant.

Les champs spécifiques au type d'élément sont décrits sur les pages correspondantes.

Lors de la modification d'un élément de niveau modèle existant au niveau d'un hôte, un certain nombre de champs sont en lecture seule. Vous pouvez utiliser le lien dans l'en-tête du formulaire et aller au niveau du modèle pour les modifier là-bas, en gardant à l'esprit que les modifications au niveau du modèle changeront l'élément pour tous les hôtes auxquels le modèle est lié.

L'onglet Tags permet de définir des tags au niveau de l'élément.

Prétraitement des valeurs d'élément

L'onglet Preprocessing permet de définir des règles de transformation pour les valeurs reçues.

Test d'élément

Pour effectuer le test d'un élément, assurez-vous que l'heure système sur le serveur et le proxy est synchronisée. Si l'heure du serveur est en retard, le test d'élément peut renvoyer le message d'erreur "The task has been expired." En revanche, le fait d'avoir défini des fuseaux horaires différents sur le serveur et le proxy n'affectera pas le résultat du test.

Il est possible de tester un élément et, s'il est correctement configuré, d'obtenir une valeur réelle en retour. Le test peut être effectué même avant l'enregistrement d'un élément.

Le test est disponible pour les éléments d'hôte et de modèle, les prototypes d'élément et les règles de découverte de bas niveau. Le test n'est pas disponible pour les éléments actifs.

Le test d'élément est disponible pour les types d'éléments passifs suivants :

  • Zabbix agent
  • SNMP agent (v1, v2, v3)
  • IPMI agent
  • SSH checks
  • Telnet checks
  • JMX agent
  • Simple checks (except icmpping*, vmware.* items)
  • Zabbix internal
  • Calculated items
  • External checks
  • Database monitor
  • HTTP agent
  • Script
  • Browser

Pour tester un élément, cliquez sur le bouton Test en bas du formulaire de configuration de l'élément. Notez que le bouton Test sera désactivé pour les éléments qui ne peuvent pas être testés (comme les vérifications actives, les vérifications simples exclues).

Le formulaire de test d'élément comporte des champs pour les paramètres d'hôte requis (adresse de l'hôte, port, test avec serveur/proxy (nom du proxy)) et des détails spécifiques à l'élément (tels que la communauté SNMPv2 ou les informations d'identification de sécurité SNMPv3). Ces champs sont contextuels :

  • Les valeurs sont préremplies lorsque cela est possible, c'est-à-dire, pour les éléments nécessitant un agent, en reprenant les informations de l'interface agent sélectionnée de l'hôte.
  • Les valeurs doivent être saisies manuellement pour les éléments de modèle.
  • Les valeurs des macros en texte brut sont résolues.
  • Les champs dont la valeur (ou une partie de la valeur) est un secret ou une macro Vault sont vides et doivent être saisis manuellement. Si un paramètre d'élément contient une valeur de macro secrète, le message d'avertissement suivant s'affiche : "Item contains user-defined macros with secret values. Values of these macros should be entered manually."
  • Les champs sont désactivés lorsqu'ils ne sont pas nécessaires dans le contexte du type d'élément (par exemple, le champ d'adresse de l'hôte et le champ proxy sont désactivés pour les éléments calculés)

Pour tester l'élément, cliquez sur Get value. Si la valeur est récupérée avec succès, elle remplira le champ Value, en déplaçant la valeur actuelle (le cas échéant) vers le champ Previous value, tout en calculant également le champ Prev. time, c'est-à-dire la différence de temps entre les deux valeurs (clics) et en essayant de détecter une séquence EOL et de passer à CRLF si "\n\r" est détecté dans la valeur récupérée.

Cliquez sur Get value and test pour tester le prétraitement.

Les valeurs récupérées depuis un hôte et les résultats de test sont tronqués à une taille maximale de 512 KB lorsqu'ils sont envoyés à l'interface. Si un résultat de test est tronqué, une icône d'avertissement s'affiche ; survolez-la pour obtenir des détails. Si une valeur est tronquée, elle peut échouer à la validation du type de données lors de tests consécutifs comparant de grandes valeurs (par exemple, JSON) ; dans ce cas, un message d'erreur s'affiche. Notez que les données supérieures à 512 KB sont toujours traitées intégralement par le serveur Zabbix.

Si la configuration est incorrecte, un message d'erreur s'affiche en décrivant la cause possible.

Une valeur récupérée avec succès depuis un hôte peut également être utilisée pour tester les étapes de prétraitement.

Boutons du formulaire

Les boutons en bas du formulaire permettent d'effectuer plusieurs opérations.

Ajouter un élément. Ce bouton n'est disponible que pour les nouveaux éléments.
Mettre à jour les propriétés d'un élément.
Créer un autre élément à partir des propriétés de l'élément actuel.
Exécuter immédiatement une vérification pour une nouvelle valeur d'élément. Pris en charge uniquement pour les vérifications passives (voir plus de détails).
Remarque : lors de la vérification immédiate d'une valeur, le cache de configuration n'est pas mis à jour ; la valeur ne reflétera donc pas les modifications très récentes de la configuration de l'élément.
Tester si la configuration de l'élément est correcte en obtenant une valeur.
Supprimer l'historique et les tendances de l'élément.
Supprimer l'élément.
Annuler la modification des propriétés de l'élément.

Limites des données d'élément

Les limites des données d'élément dépendent du type de données de l'élément et du backend de base de données.

Les valeurs numériques (non signées) sont stockées telles quelles. Si une valeur à virgule flottante est reçue, seule la partie entière est stockée (par exemple, 1.23 → 1).

Les valeurs numériques (float) sont stockées telles quelles et prennent en charge environ 15 à 17 chiffres de précision, avec une plage d'environ -1.79E+308 à 1.79E+308. Les valeurs en notation scientifique sont également prises en charge (par exemple, 1.23E+7, 1e308, 1.1E-4).

Les valeurs textuelles sont tronquées avant d'être stockées afin de respecter la limite du type de valeur de la base de données :

Base de données Type d'information
Caractère Journal Texte
MySQL 255 caractères 65536 octets 65536 octets
PostgreSQL 255 caractères 65536 caractères 65536 caractères
SQLite (uniquement proxy Zabbix) 255 caractères 65536 caractères 65536 caractères

Les valeurs binaires sont limitées à 16 MiB (16777216 octets). Les valeurs qui dépassent cette limite sont ignorées, et une erreur correspondante est affichée dans l'interface.

Les valeurs avec le type de données JSON sont limitées à 128 MiB (134217728 octets). Les valeurs qui dépassent cette limite sont ignorées, et une erreur correspondante est affichée dans l'interface. Pour MySQL/MariaDB, envisagez de configurer des partitions quotidiennes pour la table history_json (utilisée pour stocker les valeurs JSON), car elle peut grossir rapidement et verrouiller le housekeeper pendant une période prolongée. Si votre cas d'utilisation implique de grandes valeurs JSON (1 MiB ou plus), consultez la procédure de configuration de votre système pour la prise en charge des grandes valeurs JSON.

Lorsque Zabbix écrit des données d'élément dans la base de données, il utilise des requêtes INSERT et les journalise (si DebugLevel est défini sur 4 ou 5). Les grandes entrées de journal sont tronquées à 64 Ko.

Limite des scripts personnalisés

La longueur disponible pour les scripts personnalisés dépend de la base de données utilisée :

Base de données Limite en caractères Limite en octets
MySQL 65535 65535
PostgreSQL 65535 non limitée
SQLite (uniquement Zabbix proxy) 65535 non limitée

Délai d'attente de l'élément

Le délai d'attente de l'élément spécifie combien de temps Zabbix doit attendre avant d'interrompre la vérification en la considérant comme échouée.

Lorsque le délai d'attente est atteint, la vérification est interrompue même si la récupération des données n'est pas terminée. Si les données sont reçues partiellement, l'élément devient non pris en charge et un message d'erreur est consigné (par exemple, si les données sont collectées avec succès pour un seul des plusieurs OID dans une vérification SNMP).

Pour de nombreux types d'éléments, vous pouvez définir des délais d'attente d'élément flexibles :

  • par élément unique
  • par type d'élément (au niveau du proxy)
  • par type d'élément (au niveau de l'interface globale)

Un délai d'attente personnalisé par élément unique est utile si vous souhaitez spécifier un délai d'attente plus long pour un élément particulier, tout en conservant des délais d'attente faibles pour les autres éléments.

Priorité des délais d'attente

  1. Le délai d'attente d'un élément unique remplace tout autre délai d'attente.
  2. Les délais d'attente au niveau du proxy remplacent les délais d'attente globaux.

Le délai d'attente provenant de la configuration du serveur Zabbix ou du proxy ne joue aucun rôle dans les vérifications pour lesquelles des délais d'attente flexibles sont définis.

Prise en charge des délais d'attente flexibles

Les délais d'attente flexibles des éléments sont pris en charge pour les types d'éléments suivants :

Éléments non pris en charge

Les éléments non pris en charge sont signalés avec le statut Non pris en charge et sont toujours revérifiés selon leur Intervalle de mise à jour standard.

Un élément devient non pris en charge si sa valeur ne peut pas être récupérée pour une raison quelconque (par exemple, une erreur de connexion, aucun poller configuré pour traiter l’élément). De plus, les éléments qui ne reçoivent pas de données historiques restent dans le statut Non pris en charge. Il s’agit du comportement attendu : un élément passe au statut Normal uniquement lorsqu’il reçoit de nouvelles données historiques valides.

Comme les problèmes, les éléments non pris en charge ne sont réévalués que lorsque de nouvelles données sont reçues, même s’il n’y a plus de données historiques disponibles pour cet élément. En d’autres termes, les éléments et les déclencheurs changent d’état uniquement lors de la réception de nouvelles données. Cependant, si une expression de déclencheur inclut une fonction date and time et/ou nodata(), le déclencheur sera recalculé toutes les 30 secondes (voir triggers calculation time pour plus de détails).