Zabbix 4.2 est sorti

Notre équipe est très heureuse de vous annoncer la sortie d'un système de surveillance open source gratuit. Zabbix4.2!

Zabbix 4.2 est sorti

La version 4.2 est-elle la réponse à la question principale de la vie, de l’univers et de la surveillance en général ? Jetons un coup d'oeil !

Rappelons que Zabbix est un système universel de surveillance des performances et de la disponibilité des serveurs, des équipements d'ingénierie et de réseau, des applications, des bases de données, des systèmes de virtualisation, des conteneurs, des services informatiques et des services Web.

Zabbix met en œuvre un cycle complet depuis la collecte des données, leur traitement et leur transformation, l'analyse des données reçues, et se termine par le stockage de ces données, la visualisation et l'envoi d'alertes à l'aide de règles d'escalade. Le système offre également des options flexibles pour étendre la collecte de données et les méthodes d'alerte, ainsi que des capacités d'automatisation via l'API. Une interface Web unique met en œuvre une gestion centralisée des configurations de surveillance et la distribution des droits d'accès à différents groupes d'utilisateurs. Le code du projet est distribué gratuitement sous licence GPLv2.

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

Parlons donc des nouveautés et des améliorations majeures de la version 4.2 :

Plus de plateformes officielles

Zabbix 4.2 est sorti
En plus des packages officiels existants, nous proposons également de nouvelles versions pour :

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

Prise en charge Prometheus intégrée pour la surveillance des applications

Zabbix peut collecter des données de différentes manières (push/pull) à partir de différentes sources de données. Il s'agit de JMX, SNMP, WMI, HTTP/HTTPS, RestAPI, XML Soap, SSH, Telnet, agents et scripts et autres sources. Rencontrez maintenant le support de Prometheus !

À proprement parler, la collecte de données auprès des exportateurs Prometheus était possible dans le passé grâce au type d'élément de données HTTP/HTTPS et aux expressions régulières.

Cependant, la nouvelle version vous permet de travailler avec Prometheus aussi efficacement que possible grâce à la prise en charge intégrée du langage de requête PromQL. Et l'utilisation de métriques dépendantes vous permet de collecter et de traiter les données le plus efficacement possible : vous demandez des données une fois, puis nous les trions en fonction des métriques nécessaires.

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

Il est important de noter que la découverte de bas niveau peut désormais utiliser les données collectées pour générer automatiquement des métriques. Dans ce cas, Zabbix convertit les données reçues au format JSON, ce qui est très pratique à utiliser.

Zabbix 4.2 est sorti
Recherche de métriques à l'aide d'un filtre dans le langage de requête PromQL

Pour le moment, il y en a plus 300 intégrations et recettes de surveillance services et applications tiers utilisant Zabbix. La prise en charge de Prometheus vous permettra d'ajouter tout un ensemble d'applications disposant d'exportateurs Prometheus officiels ou pris en charge par la communauté. Il s'agit de la surveillance des services, conteneurs et ressources cloud populaires.

Surveillance efficace des hautes fréquences

Voulons-nous détecter les problèmes le plus rapidement possible ? Bien sûr, sans aucun doute ! Le plus souvent, cette approche nous oblige à interroger les appareils et à collecter des données trop fréquemment, ce qui alourdit le système de surveillance. Comment éviter cela ?

Nous avons implémenté un mécanisme de limitation dans les règles de prétraitement. La limitation, en substance, nous donne la possibilité 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. Dans le même temps, Zabbix reçoit un flux continu de données de 1 (fonctionne) et 0 (ne fonctionne pas). Par exemple : 1111111111110001111111111111…

Lorsque tout est en ordre avec notre application, alors Zabbix reçoit un flux composé uniquement d'applications. Doivent-ils être traités ? En général, non, car nous souhaitons uniquement changer l’état de l’application, nous ne souhaitons pas collecter et stocker autant de données. Ainsi, la limitation permet de sauter une valeur si elle est identique à la précédente. En conséquence, nous ne recevrons que des données sur le changement d'état, par exemple 01010101... C'est bien assez d'informations pour détecter des problèmes !

Zabbix ignore simplement les valeurs manquantes, elles ne sont pas enregistrées dans l'historique et n'affectent en rien les déclencheurs. Du point de vue de Zabbix, il ne manque aucune valeur.

Zabbix 4.2 est sorti
Ignorer les valeurs en double

Super! Nous pouvons désormais interroger les appareils très fréquemment et détecter instantanément les problèmes sans stocker d'informations inutiles dans une base de données.

Et les graphismes ? Ils seront vides faute de données ! Et comment savoir si Zabbix collecte des données si la plupart de ces données sont manquantes ?

Nous y avons pensé aussi ! Zabbix propose un autre type de limitation, la limitation avec battement de cœur.

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

Dans ce cas, Zabbix, malgré le flux de données répétitif, stockera 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 défini sur une minute, alors Zabbix transformera le flux d'unités sur deux en un flux toutes les minutes. Il est facile de voir que cela conduit à une compression de 60 fois les données reçues.

Nous sommes maintenant sûrs que les données sont collectées, que la fonction de déclenchement nodata() fonctionne et que 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 peu fiables. Par exemple, nous savons qu’un capteur de température doit renvoyer des données comprises entre 0°C et 100°C et que toute autre valeur doit être considérée comme fausse et/ou ignorée.

Cela est désormais possible grâce aux règles de validation des données intégrées au prétraitement pour la conformité ou le manque de conformité avec les expressions régulières, les plages de valeurs, JSONPath et XMLPath.

Nous pouvons désormais contrôler la réaction à l’erreur. Si la température est hors plage, nous pouvons simplement ignorer une telle valeur, définir une valeur par défaut (par exemple, 0°C) ou définir notre propre message d'erreur, par exemple « Capteur endommagé » ou « Remplacer la batterie ».

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

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 l'ensemble de la métrique. Il s'agit d'une fonctionnalité très utile lors de la récupération de données à partir d'API externes.

Toute transformation de données utilisant JavaScript

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

Zabbix 4.2 est sorti
Une seule ligne de code pour convertir les degrés Fahrenheit en Celsius

Cela ouvre des possibilités infinies pour le traitement des données entrantes. L’avantage pratique de cette fonctionnalité est que nous n’avons plus besoin des scripts externes que nous utilisions pour effectuer toute manipulation de données. Désormais, tout cela peut être fait en utilisant JavaScript.

Désormais, la transformation des données, l'agrégation, les filtres, les opérations arithmétiques et logiques et bien plus encore sont possibles !

Zabbix 4.2 est sorti
Extraire des informations utiles de la sortie Apache mod_status !

Test du prétraitement

Désormais, nous n'avons plus besoin de deviner comment fonctionnent nos scripts de prétraitement complexes. Il existe désormais un moyen pratique de vérifier si le prétraitement fonctionne correctement 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 géré exclusivement par le serveur Zabbix, ce qui limitait la possibilité d'utiliser des proxys pour la répartition de la charge.

À partir de Zabbix 4.2, nous obtenons une mise à l'échelle de charge incroyablement efficace grâce à la prise en charge du prétraitement côté proxy. Maintenant, les proxys le font !

Zabbix 4.2 est sorti

En combinaison avec la limitation, cette approche permet une surveillance à haute fréquence et à grande échelle et des millions de contrôles par seconde, sans charger le serveur central Zabbix. Les proxys traitent des volumes gigantesques de données, tandis que seule une petite partie atteint le serveur Zabbix en raison de la limitation, un ou deux ordres de grandeur de moins.

Détection de bas niveau plus facile

Rappelons que la découverte de bas niveau (LLD) est un mécanisme très puissant pour découvrir automatiquement tout type de ressources de surveillance (systèmes de fichiers, processus, applications, services, etc.) et créer automatiquement des éléments de données, des déclencheurs, des nœuds de réseau basés sur celles-ci et autres. objets. Cela permet de gagner un temps incroyable, de simplifier la configuration et de permettre d'utiliser un modèle sur des hôtes dotés de différentes ressources de surveillance.

La découverte de bas niveau nécessitait un JSON spécialement formaté en entrée. Ça y est, ça n'arrivera plus !

Zabbix 4.2 permet à la découverte de bas niveau (LLD) d'utiliser des données arbitraires au format JSON. Pourquoi c'est important? Cela permet par exemple de communiquer avec des API externes sans recourir à des scripts et d'utiliser les informations reçues pour créer automatiquement des hôtes, des éléments de données et des déclencheurs.

Associé à la prise en charge de JavaScript, cela crée des opportunités fantastiques pour créer des modèles permettant de travailler avec diverses sources de données, telles que, par exemple, les API cloud, les API d'application, les données au format XML, les formats CSV, etc.

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

Les possibilités sont infinies!

Prise en charge de TimescaleDB

Zabbix 4.2 est sorti

Qu’est-ce que TimescaleDB ? Il s'agit de PostgreSQL standard plus un module d'extension de l'équipe 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 avec historique. TimescaleDB est rapide et facile à maintenir ! Cependant, je dois noter que notre équipe n'a pas encore fait de comparaison sérieuse des performances avec PostgreSQL standard.

Pour le moment, TimescaleDB est un produit assez jeune et en développement rapide. Utiliser avec précaution!

Gestion facile des balises

Si auparavant les balises ne pouvaient être gérées qu'au niveau du déclencheur, la gestion des balises est désormais beaucoup plus flexible. Zabbix prend en charge les balises pour les modèles et les hôtes !

Tous les problèmes détectés reçoivent des balises non seulement du déclencheur, mais également de l'hôte, ainsi que des modèles de cet hôte.

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

Enregistrement automatique plus flexible

Zabbix 4.2 vous permet de filtrer les hôtes par nom à l'aide d'expressions régulières. Cela permet de créer différents scénarios de détection pour différents groupes de nœuds de réseau. C’est particulièrement pratique si nous utilisons des règles de dénomination de périphériques complexes.

Découverte de réseau plus flexible

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

Il s'agit d'une fonctionnalité très nécessaire, notamment pour la découverte de réseau à l'aide de SNMP et de l'agent Zabbix.

Zabbix 4.2 est sorti
Attribuez automatiquement le nom d'hôte local à un nom visible

Vérification de la fonctionnalité des méthodes de notification

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

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 et du proxy Zabbix (métriques de performances et santé des composants Zabbix).

Pourquoi est-ce? La fonctionnalité vous permet de surveiller les métriques internes des serveurs et des proxys de l'extérieur, vous permet de détecter et de notifier rapidement les problèmes même si les composants eux-mêmes sont surchargés ou, par exemple, s'il y a une grande quantité de données non envoyées sur le proxy.

Prise en charge du format HTML pour les messages électroniques

Désormais, nous ne sommes plus limités au texte brut et pouvons créer de magnifiques messages électroniques 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 une utilisation minimale du HTML

Accès aux systèmes externes à partir de cartes réseau

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

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

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

Pourquoi est-ce nécessaire - demandez-vous. Cela permet d'utiliser les données métriques sous-jacentes à la fois pour la découverte et la collecte directe de données. Par exemple, dans le cas de la collecte de données auprès d'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 métriques et règles de découverte de bas niveau.

Une nouvelle façon de visualiser les problèmes sur des cartes

Les images GIF animées sur les cartes sont désormais prises en charge pour une visualisation plus visible des problèmes.

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

Extraction de données à partir d'en-têtes HTTP dans la surveillance Web

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

Cela vous permet de créer des scénarios de surveillance Web en plusieurs étapes ou de surveillance d'API tierces à l'aide du jeton d'autorisation obtenu à l'une des étapes.

Zabbix 4.2 est sorti
Extraire 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 à partir du paramètre ServerActive dans le fichier de configuration de l'agent.

Zabbix 4.2 est sorti

Nouveau filtre pratique dans la configuration de déclenchement

La page de configuration des déclencheurs dispose désormais d'un filtre étendu pour une sélection rapide et pratique des déclencheurs en fonction de critères spécifiés.

Zabbix 4.2 est sorti
Sélection des déclencheurs liés au service K8S

Afficher l'heure exacte

Tout est simple ici, Zabbix affiche désormais l'heure exacte lorsque vous passez la souris sur le graphique.

Zabbix 4.2 est sorti

Autres nouveautés

  • Implémentation d'un algorithme plus prévisible pour modifier l'ordre des widgets dans le tableau de bord
  • Possibilité de modifier en masse les paramètres des prototypes d'éléments de données
  • Prise en charge IPv6 pour les vérifications DNS : "net.dns" et "new.dns.record"
  • Ajout du paramètre « skip » pour les vérifications « vmware.eventlog »
  • L'erreur d'exécution de l'étape de prétraitement inclut le numéro de l'étape

Comment mettre à jour ?

Pour mettre à niveau à partir de versions antérieures, il vous suffit d'installer nouveaux binaires (serveurs et proxys) et une nouvelle interface. Zabbix mettra automatiquement à jour la base de données. Il n'est pas nécessaire d'installer de nouveaux agents.

Nous organisons des webinaires gratuits pour ceux qui souhaitent en savoir plus sur Zabbix 4.2 et avoir la possibilité de poser des questions à l'équipe Zabbix. S'inscrire!

N'oubliez pas le populaire Chaîne de télégramme Communauté Zabbix, où vous pouvez toujours obtenir des conseils et des réponses à vos questions en russe auprès de collègues plus expérimentés et, si vous avez de la chance, des développeurs Zabbix eux-mêmes. Recommandé pour les débutants groupe pour débutants.

Liens utiles

- Notes de publication
- Notes de mise à niveau
- Article original

Source: habr.com

Ajouter un commentaire