This is the documentation page for an unsupported version of Zabbix.
Is this not what you were looking for? Switch to the current version or choose one from the drop-down menu.

9 Notes de mise à jour pour la version 4.0.0

Ces notes concernent la mise à jour depuis Zabbix 3.4.x vers Zabbix 4.0.0. Toutes les notes sont regroupées de la manière suivante :

  • Critiques - les informations les plus critiques liées au processus de mise à jour et aux modifications des fonctionnalités de Zabbix
  • Informatives - toutes les informations restantes décrivant les modifications des fonctionnalités Zabbix

Il est possible de mettre à jour vers Zabbix 4.0.0 à partir des versions antérieures à Zabbix 3.4.0. Reportez-vous à la section procédure de mise à jour pour obtenir des informations pertinentes sur la mise à jour depuis les versions précédentes de Zabbix.

Critiques

Dépendances additionnelles

 * libpthread - la bibliothèque POSIX Threads est désormais obligatoire pour la compilation du serveur Zabbix et du proxy Zabbix. Elle est requise pour les mutex partagés par un processus et les verrous en lecture-écriture. Si des mutex sont disponibles, mais ne peuvent pas être partagés, Zabbix utilisera les sémaphores comme avant la mise à jour.
        * zlib - la bibliothèque de compression est maintenant obligatoire lors de la compilation du serveur Zabbix et du proxy Zabbix.

Paramètre Server obligatoire pour les proxys passifs

Le paramètre Server dans la configuration du proxy passif, qui était précédemment ignoré, est désormais obligatoire. Le proxy passif rejettera une adresse non répertoriée dans le paramètre Server.

Protocole texte brut abandonné

La prise en charge du protocole texte brut a été supprimée et un en-tête est désormais obligatoire. Un en-tête a été ajouté aux demandes get Zabbix, aux requêtes de vérifications passives du serveur Zabbix et du proxy Zabbix et les requêtes de l'interface utilisateur vers le serveur Zabbix.

En conséquence, les agents Zabbix antérieurs à la version 1.4 ne sont plus supportés. De plus, les messages provenant d'expéditeurs auto-écrits seront rejetés si l'en-tête est absent. Alors qu'auparavant, les trappeurs Zabbix acceptaient les messages sans en-tête ainsi que les messages avec en-tête, maintenant ils n'accepteront plus que les messages avec en-tête de protocole.

Modules chargeables

L'exportation de l'historique via le module n'est plus supporté par le proxy Zabbix.

Section Surveillance → Déclencheurs supprimée

La section Surveillance → Déclencheurs est maintenant supprimée. Les paramètres globaux associés "Afficher les événements plus vieux que" et "Nombre maximum d'événements par déclencheur à afficher" ont été supprimés également.

Syntaxe des paramètres de clé d'élément non autorisé

La syntaxe des paramètres de clé d'élément suivante n'est plus supportée :

  • Tableaux de paramètres multi-niveaux, par exemple : [a,[b,[c,d]],e]
  • Paramètres de style Zapcat, par exemple : [a][b]

Notez que cette syntaxe n'a jamais été utilisée par les clés d'objet Zabbix officielles, et qu'elle n'a jamais été officiellement documentée comme prise en charge. Elle existait uniquement pour la compatibilité avec des solutions telles que Zapcat JMX Zabbix Bridge.

Support de MySQL 8.0

Pour pouvoir prendre en charge MySQL 8.0 dans cette version, deux modifications ont été apportées à la base de données :

  • La table 'groups' a été renommée en 'hstgrp'
  • Le champ 'function' dans la table 'functions' a été renommé en 'name'

Fonctions de déclenchement

Au cours de la mise à jour, les valeurs de paramètre de la fonction de déclenchement LogSource seront converties pour fonctionner avec la prise en charge supplémentaire des expressions régulières et des expressions régulières globales. Il peut y avoir des cas où les paramètres existants contiennent un nombre considérable de caractères spéciaux d’expression régulière ou si leur longueur est proche de la limite maximale autorisée et, au cours de la conversion, dépasse la limite maximale autorisée, qui est de 255 caractères. Dans ce cas, aucune modification ne sera apportée à ces paramètres et des détails sur tous ces cas seront ajoutés au fichier journal. Si les performances du déclencheur posent des problèmes, les paramètres non modifiés doivent être modifiés manuellement.

Authentification HTTP

Lorsque l'authentification système par défaut était précédemment définie sur "Authentification HTTP" lors de la mise à jour, elle devient "Interne" avec l'option "Authentification HTTP" activée par défaut. Pour une telle configuration, il est nécessaire d'effacer les valeurs de mot de passe utilisateur par défaut existantes dans la base de données en exécutant la requête suivante :

UPDATE users SET passwd="" WHERE passwd=md5('zabbix')
Changements relatifs à l'API

Le code spécifique à l'authentification de base HTTP a été supprimé de l'API. Par conséquent, le champ password est désormais obligatoire pour l'action API user.login.

Informatives

Macros obsolètes dans le nom de l'élément

Utiliser les macros positionnelles ($1, $2, ...$9) et les macros utilisateur dans les noms d'élément et prototype d'élément est maintenant obsolète.

En conséquence, les macros de position ont été supprimées des noms d’éléments et des noms de prototype d’éléments dans les modèles standard fournis avec Zabbix 4.0.

Si vous continuez à utiliser des macros positionnelles, vous rencontrerez les difficultés suivantes lors de l'utilisation du nouveau widget graphique :

  • Il ne sera pas possible d'ajouter les éléments individuellement nommés temps CPU $2 au graphique, en utilisant son nom résolu (comme temps CPU utilisateur).
  • Il sera uniquement possible d'ajouter au graphique tous les éléments portant le nom, par exemple temps CPU $2 (par exemple, temps d'utilisation de l'UC, temps système CPU, temps d'inactivité de l'UC, etc.).

Si vous utilisez des macros positionnelles dans les noms de prototype d'élément, il est suggéré de mettre à jour les règles de découverte manuellement en remplaçant la macro positionnelle par la macro de découverte de bas niveau respective, par exemple :

|<| |<| |-| |<|

Il sera possible d'utiliser des éléments générés de cette manière dans le widget graphique sans aucune limitation.

Correction de l'horodatage

Le serveur Zabbix ne corrigera plus les horodatages dans les cas où l'heure du proxy/agent actif/sender Zabbix diffère de l'heure du serveur Zabbix.

Déclencheurs de temps traités par les syncers d'historique

Le traitement des fonctions de déclenchement temporels tels que nodata(), date(), dayofmonth(), dayofweek(), time() et now() a été déplacé des processus timer vers les syncer d'historique.

Alors que tous les déclencheurs basés sur le temps étaient recalculés en même temps, créant ainsi des pics de charge toutes les 30 secondes, le traitement du déclenchement basé sur le temps est désormais réparti de manière égale sur ces 30 secondes.

Avec cette modification, il pouvait être nécessaire de recalculer le nombre requis de processus timer, en particulier si plusieurs syncer étaient précédemment configurées pour partager la charge de calcul du déclencheur basé sur le temps. Même si les calculs de déclenchement basés sur le temps n'affectent plus la charge du timer, les calculs de maintenance peuvent nécessiter plus de ressources et vous pouvez donc configurer plusieurs timer pour partager la charge du traitement de la maintenance.

Impact de la maintenance de l'hôte au niveau du déclencheur

Lorsqu'un hôte entre en mode maintenance, les processus timer du serveur Zabbix liront désormais tous les problèmes en suspens pour vérifier s'il est nécessaire de les supprimer. Cela peut avoir un impact sur les performances s'il existe de nombreux problèmes non résolus. Le serveur Zabbix lira également tous les problèmes non résolus au démarrage, même s’il n’y a pas de maintenance configurée à ce moment-là.

Si durant la période de maintenance, les hôtes, les groupes ou les tags sont modifiés par l'utilisateur, les modifications ne prendront effet qu'après la synchronisation du cache de configuration.

Modifications de l'enregistrement automatique

Le comportement de l’enregistrement automatique a été modifié de la manière suivante :

  • Les actions d’enregistrement automatique des agents actifs seront ré-exécutées si les métadonnées de l’hôte sont modifiées ;
  • Étant donné que les métadonnées ne sont ajoutées que lors de l'inscription automatique, les métadonnées des hôtes créés manuellement sont manquantes et l'enregistrement automatique est à nouveau exécuté ;
  • Si un hôte est modifié manuellement pour être surveillé par un autre proxy Zabbix, l'inscription automatique sera ré-exécutée.

Comme précédemment, si l'enregistrement automatique pour le même hôte provient d'un nouveau proxy Zabbix, l'inscription automatique sera ré-exécutée.

Problème de génération de nom

Les noms des problèmes et des événements sont maintenant stockés directement dans les tables d'événements et de problèmes lors de la génération d'événement, au lieu d'être générés comme précédemment dans le moteur d'exécution. Un correctif de base de données remplira le nouveau nom des problèmes et le champs nom des événements sans les macros étendues. Notez que ces modifications nécessiteront davantage d'espace de stockage.

La mise à jour de la base de données au démarrage initial du serveur peut prendre du temps s'il y a beaucoup d'anciens événements et que les macros {ITEM.VALAST},{ITEM.LASTVALUE} sont utilisées dans les noms de déclencheurs.

Les valeurs des champs de nom d'événement et de problème renseignés sont les suivantes:

  • Pour les déclencheurs d'événements - nom du déclencheur avec toutes les macros résolues
  • Pour les problèmes internes :
    • // Impossible d'obtenir la valeur de l'élément // - pour les éléments non pris en charge
    • //Impossible de calculer l'expression du déclencheur // - pour les déclencheurs inconnus
  • Pour le reste des événements, le nom sera vide
Changements dans les macros associées

Étant donné que les noms des problèmes ne sont plus générés au moment de l'exécution en fonction du nom du déclencheur actuel, mais sont générés au moment de l'événement, des modifications de macro correspondantes ont été effectuées :

  • Dans tous les messages par défaut - {TRIGGER.NAME} a été remplacée par {EVENT.NAME} ;
  • Dans toutes les actions basées sur les déclencheurs - {TRIGGER.NAME} ​sera remplacé par {EVENT.NAME} lors de la mise à jour.

Voir aussi : les problèmes connus

Travailler avec les problèmes

Plusieurs modifications ont été apportées pour résoudre les problèmes, notamment la modification de macros. Pour plus de détails, voir la section Nouveautés dans Zabbix 4.0.0.

Modifications des API associées

Les méthodes problem.get et event.get ont été modifiées de telle manière que le paramètre d'entrée de recherche/filtre avec l'objet {'name': '...'} comme valeur soit utilisé pour trouver des résultats correspondants (par champ "name") dans le tableau correspondant ("problem" ou "event").

Les méthodes problem.get et event.get ont été étendues en ajoutant un paramètre de réponse appelé "name". Pour les deux méthodes, le nouveau paramètre contient une valeur du champ "name" nouvellement ajouté dans la table de la base de données "problem" ou "event".

Utilisation du cache de configuration du serveur

Le cache de configuration du serveur a été modifié pour conserver toutes les informations d'inventaire de l'hôte. Si vous utilisez la fonctionnalité d'inventaire avec des hôtes, augmentez la mémoire dédiée du cache de configuration pour le serveur en conséquence.

Exécution des scripts de vérification externes

A la fin d'un script de vérification externe, les arguments sont regroupés en guillemets simples ' au lieu de guillemets ". Cette modification permet à Zabbix d’accepter plus de signes dans le nom d’un paramètre de vérification externe. Par exemple, le signe $ n'est plus ignoré.

Disponibilité de la passerelle Java Zabbix

À partir de maintenant, l'état de disponibilité de la passerelle Java Zabbix ne passera pas au rouge chaque fois que l'un des éléments devient non supporté. Le badge de disponibilité JMX ne devient rouge qu'en cas d'erreur réseau - lorsque la passerelle Java n'est pas disponible ou en cas de problèmes de communication entre le serveur Zabbix et la passerelle Java Zabbix.

Les logs de la passerelle Java Zabbix modifiés

Si vous supervisez les logs de la passerelle Java, gardez en mémoire que les "exception stack trace" ne sont plus disponibles dans les logs de la passerelle Java ni sous la forme d'avertissements ni d'erreurs.

Changements au niveau des déclencheurs

  • Le comportement de l'expression du déclencheur concernant les nombres, différant de 0.000001, est maintenant modifié. Les opérateurs logiques étant définis en termes d'égalité à zéro, leur résultat pour 0.000001 est également affecté :
Expression (Exemple) Résultat de l'évaluation
Avant Après
1.000001 > 1 1 0
1.000001 <= 1 0 1
0 >= 0.000001 0 1
0.000001 <> 0 1 0
0.000001 = 0 0 1
0 ou (1/1000000) 1 0
not (1/1000000) 0 1
1 et 1/1000000 1 0

Changement dans le nom des Widgets, nom d'élément d'écran et nom des rapports

Les éléments suivants ont été renommés :

Avant Dans Zabbix 4.0
Statut du système Problèmes par gravité
Statut des hôtes Hôtes problématiques
Statut de Zabbix Information système

L'API Dashboard est également affectée : certains des types de propriétés du widget Tableau de bord sont maintenant renommés.

Message d'erreur de surveillance JMX

Comme la passerelle Java Zabbix prend désormais en charge l'utilisation de MBeans personnalisés renvoyant des types de données non primitifs, qui surchargent la méthode toString(), le message d'erreur a été modifié de la manière suivante :

// Précédemment : // data object type is not primitive: xxx
// Dans Zabbix 4.0 : // Data object type cannot be converted to string.

Enregistrement des modifications

Le message affiché dans les fichiers journaux concernant le cache d’historique complet a été modifié de la manière suivante :

// Précédemment : // History buffer is full. Sleeping for 1 second.
// Dans Zabbix 4.0 : // History cache is full. Sleeping for 1 second.

Voir aussi

Host column always displayed

The host column is now always displayed even if only one host is selected in:

  • MonitoringLatest data
  • MonitoringWeb
  • ReportsAvailability

This results in a wider page than previously with one host data. For more information, see the What's new section.

JMX monitoring error message

As Zabbix Java gateway now supports working with custom MBeans returning non-primitive data types, which override the toString() method, the possible error message has been changed the following way:

Previously: data object type is not primitive: xxx
In Zabbix 4.0: Data object type cannot be converted to string.

Logging changes

The message printed to the log files about a full history cache has been changed the following way:

Previously: History buffer is full. Sleeping for 1 second.
In Zabbix 4.0: History cache is full. Sleeping for 1 second.

See also