Zabbix 4.2 est sorti

Notre équipe est très heureuse de partager la nouvelle selon laquelle une nouvelle version du système de surveillance open source a été lancée Zabbix 4.2!

Zabbix 4.2 est sorti

La version 4.2 est-elle la réponse à la grande question de la vie, de l'univers et de la surveillance en général ? Voyons cela de plus près !

Rappelons que Zabbix est un système polyvalent pour la surveillance de la performance et de la disponibilité des serveurs, de l'équipement technique et réseau, des applications, des bases de données, des systèmes de virtualisation, des conteneurs, des services informatiques et des services web.

Zabbix réalise l'ensemble du cycle, de la collecte des données, leur traitement et transformation, à l'analyse des données obtenues, sans oublier leur stockage, leur visualisation et l'envoi d'alertes via des règles d'escalade. Le système offre également des possibilités d'extension flexibles pour les méthodes de collecte de données et d'alertes, ainsi que des possibilités d'automatisation via API. Une interface web unique permet une gestion centralisée des configurations de surveillance et de la distribution des droits d'accès à différents groupes d'utilisateurs. Le code du projet est distribué librement sous licence GPLv2.

Zabbix 4.2 est une nouvelle version non LTS avec une durée de support officiel réduite. Pour les utilisateurs qui se concentrent sur un long cycle de vie des produits logiciels, nous recommandons d'utiliser des versions LTS telles que 3.0 et 4.0.

Alors, parlons des nouveautés et des principales améliorations de la version 4.2 :

Plus de plateformes officielles

Zabbix 4.2 est sorti
En plus des paquets officiels existants, nous proposons également de nouveaux builds pour :

  • RaspberryPi, Mac OS/X, SUSE Enterprise Linux Server 12
  • MSI pour l'agent Windows
  • Images Docker

Support intégré de Prometheus pour la surveillance des applications

Zabbix peut collecter des données de différentes manières (push/pull) à partir de diverses sources de données. Cela inclut JMX, SNMP, WMI, HTTP/HTTPS, RestAPI, XML Soap, SSH, Telnet, agents et scripts, et d'autres sources. Et maintenant, découvrez la prise en charge de Prometheus !

En réalité, la collecte de données à partir des exportateurs Prometheus était déjà possible auparavant grâce au type d'éléments de données HTTP/HTTPS et aux expressions régulières.

Cependant, la nouvelle version permet d'interagir avec Prometheus de manière optimale grâce à la prise en charge intégrée du langage de requête PromQL. De plus, l'utilisation de métriques dépendantes permet de collecter et de traiter les données de manière plus efficace : une seule requête pour les données, puis nous les classons selon les métriques nécessaires.

Zabbix 4.2 est sorti
Obtenir la valeur d'une métrique spécifique

Il est important de noter qu'actuellement, la détection au niveau bas peut utiliser les données collectées pour créer automatiquement des métriques. Dans ce cas, Zabbix transforme les données reçues en format JSON, ce qui est très pratique.

Zabbix 4.2 est sorti
Trouvons les métriques en utilisant un filtre dans le langage de requête PromQL

Actuellement, il existe plus de 300 intégrations et recettes de surveillance de services et applications tiers grâce à Zabbix. Le soutien de Prometheus permettra d'ajouter tout un ensemble d'applications ayant des exportateurs Prometheus officiels ou soutenus par une communauté. Cela inclut la surveillance de services populaires, de conteneurs et de ressources cloud.

Surveillance efficace à haute fréquence

Voulons-nous détecter les problèmes le plus rapidement possible ? Bien sûr, aucune hésitation là-dessus ! Ce type d'approche conduit souvent à devoir interroger trop fréquemment les dispositifs et à collecter des données, ce qui génère une charge plus importante sur le système de surveillance. Comment éviter cela ?

Nous avons mis en œuvre un mécanisme de throttling dans les règles de prétraitement. Le throttling nous permet essentiellement de sauter des valeurs identiques.

Supposons que nous surveillons l'état d'une application critique. Chaque seconde, nous vérifions si notre application fonctionne ou non. Un flux continu de données arrive dans Zabbix sous forme de 1 (fonctionne) et 0 (ne fonctionne pas). Par exemple : 1111111111110001111111111111…

Lorsque tout va bien avec notre application, un flux de 1 arrive dans Zabbix. Faut-il les traiter ? En général, non, car nous ne nous intéressons qu'au changement d'état de l'application, nous ne voulons pas collecter et stocker tant de données. Ainsi, le throttling permet de sauter une valeur si elle est identique à la précédente. En fin de compte, nous obtiendrons uniquement des données sur le changement d'état, par exemple, 01010101… C'est amplement suffisant pour détecter les problèmes !

Les valeurs sautées sont simplement ignorées par Zabbix, elles ne sont pas enregistrées dans l'historique et n'affectent en rien les déclencheurs. Du point de vue de Zabbix, il n'existe pas de valeurs sautées.

Zabbix 4.2 est sorti
Ignorer les valeurs répétées

Super ! Désormais, nous pouvons interroger les dispositifs très fréquemment tout en détectant instantanément les problèmes sans stocker d'informations inutiles dans la base de données.

Mais qu'en est-il des graphiques ? Ils seront vides à cause du manque de données ! Et comment savoir si Zabbix collecte des données si la plupart de celles-ci seront ignorées ?

Nous avons également réfléchi à cela ! Zabbix propose un autre type de throttling, le throttling avec des points de contrôle (throttling with heartbeat).

Zabbix 4.2 est sorti
Une fois par minute, nous vérifions si la métrique est toujours active.

Dans ce cas, Zabbix, malgré le flux de données répétitif, enregistrera au moins une valeur dans l'intervalle de temps spécifié. Si les données sont collectées une fois par seconde et que l'intervalle est fixé à une minute, alors Zabbix transformera le flux de 1 par seconde en flux par minute. Il est facile de constater que cela entraîne une compression des données reçues par 60 fois.

Nous sommes maintenant sûrs que les données sont collectées, la fonction de déclenchement nodata() fonctionne et tout va bien avec les graphiques !

Validation des données collectées et gestion des erreurs.

Aucun d'entre nous ne souhaite collecter des données erronées ou inexactes. Par exemple, nous savons qu'un capteur de température doit renvoyer des données dans la plage de 0°C à 100°C et toute autre valeur doit être considérée comme erronée et/ou ignorée.

Cela est maintenant possible grâce aux règles de validation des données intégrées dans le prétraitement, basées sur la correspondance ou l'absence de correspondance avec des expressions régulières, des plages de valeurs, JSONPath et XMLPath.

Nous pouvons maintenant gérer la réponse à l'erreur. Si la température sort de cette plage, nous pouvons simplement ignorer cette valeur, définir une valeur par défaut (par exemple, 0°C), ou définir notre propre message d'erreur, tel que « Capteur endommagé » ou « Remplacer la batterie ».

Zabbix 4.2 est sorti
La température doit être entre 0 et 100, le reste est ignoré.

Un bon exemple d'utilisation de la validation est la possibilité de vérifier les données d'entrée pour la présence d'un message d'erreur et de définir cette erreur pour toute la métrique. C'est une fonctionnalité très utile lors de la récupération de données à partir d'API externes.

Toute transformation de données à l'aide de JavaScript.

Si les règles de prétraitement intégrées ne suffisent pas, nous offrons maintenant une liberté totale en utilisant des scripts personnalisés en JavaScript !

Zabbix 4.2 est sorti
Il ne faut qu'une seule ligne de code pour convertir des degrés Fahrenheit en degrés Celsius.

Cela ouvre des possibilités illimitées pour le traitement des données entrantes. L'avantage pratique de cette fonctionnalité est que nous n'avons plus besoin de scripts externes que nous utilisions pour toute opération sur les données. Tout cela peut maintenant être fait avec JavaScript.

Il est désormais possible de réaliser la transformation des données, l'agrégation, les filtres, des opérations arithmétiques et logiques, et bien plus encore !

Zabbix 4.2 est sorti
Nous extrayons des informations utiles à partir de la sortie d'Apache mod_status !

Nous testons le prétraitement

Nous n'avons plus besoin de deviner comment fonctionnent nos scénarios complexes de prétraitement. Il existe maintenant un contrôle pratique pour vérifier le bon fonctionnement du prétraitement directement depuis l'interface !

Zabbix 4.2 est sorti

Nous traitons des millions de métriques par seconde !

Avant Zabbix 4.2, le prétraitement était uniquement effectué par le serveur Zabbix, ce qui limitait les possibilités d'utilisation des proxies pour la répartition de la charge.

À partir de la version Zabbix 4.2, nous obtenons un dimensionnement de la charge incroyablement efficace grâce à la prise en charge du prétraitement du côté des proxies. Ce sont maintenant les proxies qui s'en occupent !

Zabbix 4.2 est sorti

En combinaison avec le throttling, cette approche permet d'effectuer une surveillance à haute fréquence et à grande échelle, ainsi que d'effectuer des millions de vérifications par seconde, sans surcharger le serveur central Zabbix. Les proxies traitent des volumes de données gigantesques, tandis que, grâce au throttling, seule une petite partie atteint le serveur Zabbix, réduite d'un ou deux ordres de grandeur.

Une découverte de bas niveau plus simple

Rappelons que la découverte de bas niveau (LLD) est un mécanisme très puissant pour la détection automatique de toutes sortes de ressources à surveiller (systèmes de fichiers, processus, applications, services, etc.) et la création automatique d'éléments de données, de déclencheurs, de nœuds réseau et d'autres objets à partir de celles-ci. Cela permet d'économiser un temps incroyable, simplifie la configuration et permet d'utiliser un seul modèle pour des nœuds réseau ayant différentes ressources à surveiller.

La découverte de bas niveau nécessitait un JSON spécifiquement formaté en entrée. Cela ne sera plus le cas !

Zabbix 4.2 permet à la détection de bas niveau (LLD) d'utiliser des données au format JSON à la présentation libre. Pourquoi est-ce important ? Cela permet, sans recourir à des scripts, de communiquer, par exemple, avec des API externes et d'utiliser les informations obtenues pour créer automatiquement des nœuds réseau, des éléments de données et des déclencheurs.

Avec le soutien de JavaScript, cela ouvre des possibilités fantastiques pour créer des modèles de travail avec différentes sources de données, telles que les API cloud, les API d'applications, les données au format XML, CSV, etc.

Zabbix 4.2 est sorti
Lier JSON aux informations sur les processus avec LLD

Les possibilités sont vraiment illimitées !

Support de TimescaleDB

Zabbix 4.2 est sorti

Qu'est-ce que TimescaleDB ? C'est un PostgreSQL classique avec un module d'extension de l'équipe de TimescaleDB. TimescaleDB promet de meilleures performances grâce à des algorithmes et une structure de données plus efficaces.

De plus, un autre avantage de TimescaleDB est le partitionnement automatique des tables d'historique. TimescaleDB est synonyme de rapidité et de facilité d'entretien ! Cependant, je dois noter que notre équipe n'a pas encore effectué de comparaisons sérieuses de performances avec un PostgreSQL classique.

Actuellement, TimescaleDB est un produit relativement jeune et en développement rapide. À utiliser avec prudence !

Gestion facile des balises

Si auparavant la gestion des balises se limitait au niveau des déclencheurs, elle est désormais beaucoup plus flexible. Zabbix prend en charge les balises pour les modèles et les nœuds réseau !

Tous les problèmes détectés reçoivent des balises non seulement du déclencheur, mais aussi du nœud réseau et des modèles de ce nœud réseau.

Zabbix 4.2 est sorti
Définir des balises pour le nœud réseau

Auto-enregistrement plus flexible

Zabbix 4.2 permet de filtrer les nœuds réseau par nom en utilisant des expressions régulières. Cela permet de créer différents scénarios de détection pour différents groupes de nœuds réseau. Particulièrement utile lorsque nous avons des règles de nommage complexes pour les appareils.

Détection réseau plus flexible

Une autre amélioration concerne le nommage des nœuds réseau. Il est maintenant possible de gérer les noms d'appareils lors de la détection réseau et d'obtenir le nom de l'appareil à partir de la valeur de la métrique.

C'est une fonctionnalité très nécessaire, surtout lors de la détection réseau via SNMP et l'agent Zabbix.

Zabbix 4.2 est sorti
Attribuer automatiquement le nom local du nœud réseau comme nom visible

Vérification de la fonctionnalité des méthodes d'alerte

Maintenant, directement depuis l'interface Web, vous pouvez vous envoyer un message test et vérifier si la méthode d'alerte fonctionne. Cette fonctionnalité est particulièrement utile pour tester les scripts d'intégration de Zabbix avec divers systèmes d'alerte, de gestion des tâches et d'autres programmes externes et API.

Zabbix 4.2 est sorti

Surveillance à distance des composants de l'infrastructure Zabbix

Il est désormais possible de surveiller à distance les métriques internes du serveur Zabbix et des proxies (métriques de performance et de fonctionnement des composants Zabbix).

À quoi cela sert-il ? Cette fonctionnalité permet de surveiller les métriques internes des serveurs et des proxies, permettant de détecter rapidement et d'alerter sur les problèmes même si les composants sont surchargés ou, par exemple, si le proxy contient un grand volume de données non envoyées.

Support du format HTML pour les e-mails

Nous ne sommes plus limités au simple texte et pouvons créer de beaux messages e-mail grâce à la prise en charge du format HTML. Il est temps d'apprendre HTML + CSS !

Zabbix 4.2 est sorti
Les messages sont plus faciles à comprendre même avec un usage minimal de HTML

Accès aux systèmes externes via des cartes réseau

Un ensemble complet de nouveaux macros dans les URL personnalisées a été ajouté pour une meilleure intégration des cartes avec des systèmes externes. Cela permet d'ouvrir, par exemple, un ticket dans le système de gestion des tâches avec un ou deux clics sur l'icône du nœud réseau.

Zabbix 4.2 est sorti
Ouvrir un ticket dans Jira en un clic

La règle de découverte peut être un élément de données dépendant

Pourquoi cela est-il nécessaire, vous demandez-vous ? Cela permet d'utiliser les données de la métrique principale à la fois pour la découverte et pour la collecte directe de données. Par exemple, dans le cas de la collecte de données depuis un exportateur Prometheus, Zabbix effectuera une requête HTTP et utilisera immédiatement les informations reçues pour tous les éléments de données dépendants : valeurs des métriques et règles de détection de bas niveau.

Nouveau moyen de visualiser les problèmes sur les cartes

Le support des images GIF animées sur les cartes a été ajouté pour une visualisation des problèmes plus marquée.

Zabbix 4.2 est sorti
Les dispositifs problématiques sont devenus plus visibles

Extraction des données des en-têtes HTTP dans la surveillance Web

La possibilité de sélectionner des données à partir de l'en-tête HTTP reçu a été ajoutée à la surveillance Web.

Cela permet de créer des scénarios de surveillance web à plusieurs étapes ou de surveiller des API tierces, en utilisant un jeton d'autorisation obtenu lors d'une des étapes.

Zabbix 4.2 est sorti
Nous extrayons l'AuthID de l'en-tête HTTP

Zabbix Sender utilise toutes les adresses IP

Zabbix Sender envoie désormais des données à toutes les adresses IP depuis le paramètre ServerActive du fichier de configuration de l'agent.

Zabbix 4.2 est sorti

Un nouveau filtre pratique dans la configuration des déclencheurs

La page de configuration des déclencheurs dispose d'un filtre avancé pour la sélection rapide et pratique des déclencheurs selon des critères définis.

Zabbix 4.2 est sorti
Sélectionnons les déclencheurs liés au service K8S

Affichage de l'heure exacte

C'est simple, maintenant Zabbix affiche l'heure exacte lorsque vous survolez le graphique.

Zabbix 4.2 est sorti

Autres nouveautés

  • Un algorithme plus prévisible a été mis en œuvre pour modifier l'ordre des widgets dans le tableau de bord.
  • Possibilité de modification en masse des paramètres des prototypes des éléments de données
  • Support de l'IPv6 pour les vérifications DNS : « net.dns » et « new.dns.record »
  • Un paramètre « skip » a été ajouté pour les vérifications « vmware.eventlog »
  • Une erreur d'exécution de l'étape de prétraitement inclut le numéro de l'étape

Comment mettre à jour ?

Pour passer à des versions antérieures, seule l'installation est nécessaire de nouveaux fichiers binaires (serveurs et proxies) et la nouvelle interface. Zabbix procédera automatiquement à la mise à jour de la base de données. L'installation de nouveaux agents ne sera pas nécessaire.

Nous organisons des webinaires gratuits pour ceux qui souhaitent en savoir plus sur Zabbix 4.2 et poser des questions à l'équipe de Zabbix. Inscrivez-vous !

N'oublions pas le populaire canal Telegram de la communauté Zabbix, où il est toujours possible d'obtenir des conseils et des réponses à vos questions en russe de la part de collègues plus expérimentés, et, si vous avez de la chance, même des développeurs de Zabbix eux-mêmes. Pour les débutants, nous recommandons un groupe pour les débutants.

Liens utiles

— Notes de version
— Notes de mise à jour
— Article original

Source : habr.com

Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS 🔥 Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster