Sortie de Zabbix 4.2

Notre équipe est très heureuse de vous annoncer la sortie du système de surveillance open source gratuit Zabbix 4.2 !



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? Voyons voir!

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 allant de la collecte, du traitement et de la conversion des données à l'analyse des données reçues, en passant 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 les méthodes de collecte de données et d'alertes, ainsi que des capacités d'automatisation via l'API. Une interface Web unique permet une gestion centralisée des configurations de surveillance et la distribution des droits d'accès à divers 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 d'assistance officielle raccourcie. Il est recommandé aux utilisateurs guidés par un long cycle de fonctionnement des produits logiciels d'utiliser les versions LTS, telles que 3.0 et 4.0.

Parlons donc des dernières mises à jour et améliorations majeures de la version 4.2:

Des plateformes plus officielles



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, des agents et des scripts, et d'autres sources. Rencontrez maintenant le support Prometheus!

À strictement parler, la collecte de données auprès des exportateurs de Prometheus a été possible plus tôt grâce au type d'élément de données HTTP / HTTPS et aux expressions régulières.

Cependant, la nouvelle version permet de travailler avec Prometheus aussi efficacement que possible en raison de 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 plus efficacement: une fois que vous avez demandé des données, puis les disposer en fonction des métriques nécessaires.


Obtenez 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 créer automatiquement des mesures. Dans ce cas, Zabbix convertit les données reçues au format JSON, ce qui est très pratique à utiliser.


Rechercher des métriques à l'aide d'un filtre dans le langage de requête PromQL

À l'heure actuelle, il existe plus de 300 intégrations et recettes pour surveiller les services et applications tiers à l'aide de Zabbix. La prise en charge de Prometheus ajoutera toute une gamme d'applications ayant des exportateurs Prometheus officiels ou soutenus par la communauté. Il s'agit d'une surveillance des services, conteneurs et ressources cloud populaires.

Surveillance efficace à haute fréquence


Voulons-nous détecter les problèmes le plus rapidement possible? Bien sûr, sans aucun doute! Le plus souvent, cette approche conduit au fait que nous devons interroger les appareils et collecter des données trop souvent, ce qui entraîne une charge plus importante sur le système de surveillance. Comment éviter cela?

Nous avons implémenté le mécanisme de limitation dans les règles de prétraitement. Le trotting, en fait, nous permet de sauter les mêmes valeurs.

Supposons que nous surveillons l'état d'une application critique. Chaque seconde, nous vérifions si notre application fonctionne ou non. Dans ce cas, Zabbix reçoit un flux continu de données de 1 (fonctionne) et 0 (ne fonctionne pas). Par exemple: 111111111111000111111111111111 ...

Lorsque tout est en ordre avec notre application, Zabbix reçoit un flux d'une seule unité. Dois-je les traiter? En général, non, car nous souhaitons uniquement modifier l'état de l'application, nous ne voulons pas collecter et stocker autant de données. Ainsi, le trot vous permet de sauter une valeur si elle est identique à la précédente. Par conséquent, nous n'obtenons que des données sur le changement d'état, par exemple, 01010101 ... Il y a suffisamment d'informations pour détecter les problèmes!

Zabbix ignore simplement les valeurs manquantes, elles ne sont pas écrites dans l'historique et n'affectent en rien les déclencheurs. Du point de vue de Zabbix, les valeurs manquantes n'existent pas.


Ignorer les valeurs en double

Ouah! Maintenant, nous pouvons très souvent interroger les appareils, 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 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 ignorées?

Nous y avons pensé! Zabbix propose un autre type de limitation, la limitation avec le rythme cardiaque.


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

Dans ce cas, Zabbix, malgré le flux répété de données, 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 défini sur une minute, Zabbix transformera un flux d'une seconde en flux d'une minute. Il est facile de voir que cela conduit à une compression de 60 fois des données reçues.

Maintenant, nous sommes sûrs que les données sont collectées, la fonction de déclenchement nodata () fonctionne et tout est en ordre avec les graphiques!

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


Aucun de 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 entre 0 ° C et 100 ° C et toute autre valeur doit être considérée comme erronée et / ou ignorée.

Maintenant, il est possible avec l'aide de règles de prétraitement intégrées pour la validation des données pour correspondre ou ne pas correspondre les expressions régulières, la plage de valeurs, JSONPath et XMLPath.

Nous pouvons maintenant contrôler la réponse à l'erreur. Si la température est hors plage, nous pouvons simplement ignorer cette valeur, définir la valeur par défaut (par exemple, 0 ° C), ou définir notre propre message d'erreur, par exemple, «Le capteur est endommagé» ou «Remplacer la batterie».


La température doit être de 0 à 100, ignorez le reste

Un bon exemple d'utilisation de la validation est la possibilité de vérifier la présence d'un message d'erreur dans l'entrée 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 à l'aide de JavaScript


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


Une seule ligne de code pour convertir les degrés Fahrenheit en degrés Celsius

Cela ouvre des possibilités infinies de traitement des données entrantes. L'avantage pratique de cette fonctionnalité est que nous n'avons plus besoin de scripts externes que nous avons utilisés pour les opérations de données. Maintenant, 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!


Nous extrayons des informations utiles de la sortie d'Apache mod_status!

Test du prétraitement


Maintenant, nous n'avons pas besoin de nous demander comment fonctionnent nos scripts de prétraitement complexes. Il y avait une vérification pratique de l'exactitude du prétraitement directement à partir de l'interface!




Nous traitons des millions de métriques par seconde!


Avant Zabbix 4.2, seul le serveur Zabbix était engagé dans le prétraitement, ce qui limitait la possibilité d'utiliser des proxys pour l'équilibrage de charge.

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



En combinaison avec la limitation, cette approche permet une surveillance à grande échelle à haute fréquence et des millions de vérifications par seconde, sans charger le serveur central Zabbix. Les proxys traitent d'énormes quantités de données, tandis que seule une petite fraction d'entre elles atteint le serveur Zabbix en raison de la limitation, un ou deux ordres de grandeur en moins.

Détection simplifiée de bas niveau


Rappelons que la détection de bas niveau (LLD) est un mécanisme très puissant pour détecter 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 sur leur base et d'autres objets. Cela économise énormément de temps, simplifie la configuration et vous permet d'utiliser un modèle pour les hôtes disposant de différentes ressources de surveillance.

La découverte de bas niveau nécessitait une entrée JSON spécialement conçue. Ça y est, ça ne sera plus!

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

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


Associer JSON aux informations de processus avec LLD

Les possibilités sont vraiment infinies!

Prise en charge de TimescaleDB





Qu'est-ce que TimescaleDB? Il s'agit d'un module d'extension PostgreSQL plus régulier de l'équipe TimescaleDB. TimescaleDB promet de meilleures performances avec des algorithmes et des structures de données plus efficaces.

De plus, un autre avantage de TimescaleDB est le partitionnement automatique des tables avec l'historique. TimescaleDB, c'est la rapidité et la facilité d'entretien! Cependant, je dois noter que notre équipe n'a pas encore fait une comparaison sérieuse des performances avec PostgreSQL standard.

À l'heure actuelle, TimescaleDB est un produit assez jeune et à croissance rapide. À utiliser avec prudence!

Gestion simple des balises


Si les balises antérieures ne pouvaient être contrôlé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 aussi de l'hôte, ainsi que les modèles de cet hôte.


Définissez les balises de l'hôte

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 scripts de découverte pour différents groupes d'hôtes. Cela 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 est la dénomination des hôtes. Vous pouvez désormais gérer les noms des appareils lors de la découverte du réseau et obtenir le nom de l'appareil à partir de la valeur métrique.

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


Attribuer automatiquement le nom d'hôte local au nom visible

Vérification de l'opérabilité des méthodes de notification


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



Surveillance à distance des composants de l'infrastructure Zabbix


Vous pouvez désormais surveiller à distance le serveur Zabbix interne et les métriques de proxy (métriques de performances et d'intégrité des composants Zabbix).

À quoi ça sert? La fonctionnalité vous permet de surveiller les mesures internes des serveurs et des proxys de l'extérieur, vous permet de détecter rapidement et de signaler les problèmes même si les composants eux-mêmes sont surchargés ou, par exemple, une grande quantité de données non envoyées est envoyée au proxy.

Prise en charge du format HTML pour les e-mails


Maintenant, nous ne sommes pas limités au simple texte et pouvons former de beaux messages électroniques, grâce au support du format HTML. Il est temps d'apprendre HTML + CSS!


Les messages sont plus faciles à lire même avec une utilisation minimale de HTML

Accès aux systèmes externes à partir des cartes d'interface réseau


Il existe un support pour tout un ensemble de nouvelles macros dans les URL personnalisées pour une meilleure intégration des cartes avec les systèmes externes. Cela permet à un ou deux clics sur l'icône de l'hôte d'ouvrir, par exemple, un ticket dans le système de tâches.


Un clic pour ouvrir un ticket à Jira

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


Pourquoi avez-vous besoin de cela - demandez-vous. Cela permet l'utilisation de données métriques de base pour la détection et la collecte directe de données. Par exemple, dans le cas de la collecte de données auprès de l'exportateur Prometheus, Zabbix effectuera une seule 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 les cartes


La prise en charge des images GIF animées sur les cartes est apparue pour une visualisation plus visible des problèmes.


Les appareils problématiques deviennent plus visibles

Récupération des données des en-têtes HTTP dans la surveillance Web


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

Cela vous permet de créer des scripts en plusieurs étapes pour la surveillance Web ou la surveillance d'API tierces en utilisant le jeton d'autorisation obtenu à l'une des étapes.


Extraire AuthID de l'en-tête HTTP

L'expéditeur Zabbix utilise toutes les adresses IP


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



Nouveau filtre pratique dans la configuration de déclenchement


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


Choisissez les déclencheurs liés au service K8S

Nous montrons l'heure exacte


C'est simple, maintenant Zabbix montre l'heure exacte lorsque vous passez la souris sur le graphique.



Autres innovations


  • Implémentation d'un algorithme plus prévisible pour changer l'ordre des widgets dans le tableau de bord (panneau)
  • La 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 d'un paramètre de saut 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 migrer à partir de versions antérieures, il vous suffit d'installer de nouveaux fichiers binaires (serveur et proxy) et une nouvelle interface. Zabbix mettra automatiquement à jour la base de données. L'installation de nouveaux agents n'est pas requise.

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

N'oubliez pas la populaire chaîne Telegram de la 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 êtes chanceux, des développeurs Zabbix eux-mêmes. Pour les débutants, nous recommandons un groupe pour les débutants .

Liens utiles


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

Source: https://habr.com/ru/post/fr444894/


All Articles