Mi-mai, la version Zabbix 5.0 a été publiée, et nous avons organisé une série de meetups en ligne dans différentes langues pour démontrer clairement à la communauté toutes les modifications et nouveautés. Nous vous proposons de découvrir le rapport du directeur général et créateur de Zabbix, Alexey Vladyshev, dans lequel il explique étape par étape les nouveautés de Zabbix 5.0.

Zabbix 4.2 et Zabbix 4.4
Commençons par les changements survenus dans la version Zabbix 4.0, en lien avec l'utilisation des versions LTS.
Dans la version Zabbix 4.2, qui est sortie en avril 2019, les fonctionnalités suivantes ont été ajoutées :
- Surveillance à haute fréquence grâce au throttling, permettant l'évolutivité et l'augmentation des NVPS, ce qui signifie une détection plus rapide des problèmes et l'envoi d'alertes sans grande charge sur Zabbix.
- Collecte de données via l'agent HTTP.
- Prise en charge de la collecte de données depuis Prometheus Pro.
- La prétraitement prend en charge la validation et JavaScript, permettant de transformer toutes les données collectées.
- Prétraitement côté proxy, qui permet une évolutivité plus efficace grâce au proxy.
- Gestion améliorée des tags — méta-informations au niveau des événements et des problèmes, faciles à utiliser car les tags sont pris en charge à la fois au niveau des modèles et des nœuds du réseau.
En septembre de l'année dernière, la version Zabbix 4.4 est sortie, offrant les fonctionnalités suivantes :
- Nouvel agent Zabbix.
- Prise en charge des Webhooks pour les alertes et notifications, permettant l'intégration avec des systèmes externes.
- Prise en charge de TimescaleDB.
- La base de connaissances intégrée pour les métriques et déclencheurs est devenue visible pour les utilisateurs de Zabbix. Par exemple, les utilisateurs peuvent utiliser la description des éléments de données et des déclencheurs dans Monitoring > Données récentes.
- Nouvelle norme pour les modèles.
Zabbix 5.0
Aujourd'hui, nous allons parler de la version LTS de Zabbix 5.0, qui sera supportée pendant 5 ans. Le support de la version 4.4 prendra fin dans un mois. La version LTS de Zabbix 3.0 sera encore supportée pendant 3,5 ans.
Zabbix surveille de nombreuses choses, dont la liste peut être précisée sur la page , où des modèles de surveillance et des plugins sont présentés, y compris pour le nouvel agent.

Modèles disponibles pour la surveillance et l'intégration
De plus, des possibilités d'intégration avec divers systèmes existent, y compris des systèmes de tickets, des systèmes ITSM et des systèmes de messagerie via Webhook.

Fonctions d'intégration
Dans Zabbix 5.0, le support intégré pour l'intégration avec divers systèmes de tickets et systèmes d'alerte a été étendu :

Intégration avec divers systèmes
La liste des modèles intégrés pour le monitoring d'applications et d'appareils a été élargie :

Modèles intégrés pour le monitoring d'applications et d'appareils
Toutes les mises à jour sont disponibles en téléchargement sur .
Tout utilisateur ou développeur peut participer à Zabbix avec des contributions prêtes — modèles ou plugins, en suivant une procédure simple :
- Signature de l'accord de contribution Zabbix (ZCA) sur .
- Soumission d'une Pull Request sur .
- Examen de la demande par l'équipe de développement. Si le plugin ou le modèle est conforme aux normes de Zabbix, il est intégré au produit, et le travail de ce développeur sera officiellement soutenu par l'équipe Zabbix.
Zabbix est un logiciel open source, accessible pour consultation, étude et modification. Les utilisateurs ont la possibilité d'utiliser le produit librement, de contribuer à l'amélioration du programme ou d'utiliser le code pour leurs nouveaux projets. D'autre part, l'équipe Zabbix fait tout son possible pour que Zabbix soit facile à installer sur diverses plateformes.
Les développeurs de Zabbix proposent des paquets pour presque toutes les distributions et plateformes de virtualisation populaires. De plus, Zabbix peut être installé en un clic dans le cloud public. Zabbix est également disponible sur les plateformes Red Hat Openshift ou OpenStack.

Paquets Zabbix pour des distributions et plateformes
Support de Zabbix Agent 2 pour Windows et Linux
Le nouveau Zabbix Agent 2 est l'une des meilleures solutions sur le marché.
- Il offre une architecture basée sur des plugins et prend en charge des scripts pour la collecte de données, capables de fonctionner pendant des heures.
- Il supporte des vérifications actives parallèles et des connexions permanentes à des systèmes externes, ce qui est utile, par exemple, pour le monitoring efficace des bases de données.
- Il prend en charge les traps et les événements, ce qui est important pour le monitoring, par exemple, des dispositifs MQTT.
- La nouvelle version de l'agent s'installe facilement (puisque le nouvel agent prend en charge toutes les fonctionnalités précédentes).
De plus, le nouvel agent dans Zabbix 5.0 propose la prise en charge du stockage permanent des données. Auparavant, les informations non envoyées étaient uniquement stockées en mémoire tampon de l'agent, tandis que dans la nouvelle version, il est possible de configurer le stockage de ces informations sur le disque.

Stockage permanent des données
Cela est important dans le cadre du monitoring de systèmes critiques et de communications instables, car un grand nombre de données essentielles est sauvegardé avant d'être envoyé au serveur Zabbix. Cette option est également utile pour les connexions par satellite, qui peuvent être indisponibles pendant de longues périodes.
IMPORTANT ! Zabbix 5.0 maintient la prise en charge de Zabbix Agent 1.
Modifications de la sécurité dans Zabbix 5.0
1. La nouvelle version prend en charge le proxy HTTP pour les webhook, ce qui permet d'établir des connexions entre le serveur Zabbix et des systèmes d'alerte externes de manière plus sécurisée et contrôlée.
Si l'intégration du serveur Zabbix dans un réseau local avec un système externe, comme JIRA dans le cloud, est nécessaire, il est possible de maintenir la connexion via un proxy HTTP, ce qui améliore la contrôlabilité et la fiabilité de la connexion.
2. Tant pour l'ancien que pour le nouvel agent, il est possible de choisir quelles vérifications doivent être disponibles sur un agent donné. Par exemple, il est possible de limiter le nombre de vérifications, en créant effectivement des listes blanches et noires, et de définir les clés prises en charge.
- Liste blanche pour les vérifications liées à MySQL
AllowKey=mysql[*] DenyKey=* - Liste noire pour interdire tous les scripts shell
DenyKey=system.run[*] - Liste noire pour interdire l'accès à /etc/password
DenyKey=vfs.file.contents[/etc/passwd,*]
3. Il est possible de choisir des algorithmes de chiffrement pour tous les composants de Zabbix, afin d'éviter d'utiliser des chiffrements non sécurisés pour les connexions TLS. Cela est important pour le suivi des environnements qui nécessitent des normes de sécurité spécifiques.

Choix des algorithmes de chiffrement pour les connexions TLS
4. Zabbix 5.0 a introduit un support pour les connexions chiffrées avec la base de données. À l'heure actuelle, seule la connexion chiffrée avec PostgreSQL et MySQL est disponible.

Connexions chiffrées avec la base de données
5. Zabbix 5.0 est passé de MD5 à SHA256 pour le stockage des hachages des mots de passe des utilisateurs dans la base de données, car c'est à ce jour l'algorithme le plus sécurisé.
6. Zabbix 5.0 prend en charge les macros utilisateur secrètes pour stocker toute information confidentielle, telle que des mots de passe et des tokens API, à laquelle les utilisateurs finaux n'ont pas accès.

Macros secrets
7. Toutes les connexions Zabbix avec des systèmes externes et les connexions internes avec les agents sont sécurisées. Le chiffrement est pris en charge à l'aide de certificats TLS ou à l'aide d'une clé prépartagée (encryption par clé prépartagée) pour la connexion avec les agents et les proxies, ou HTTPS. La sécurité du côté des agents peut être renforcée grâce à des listes blanches et noires. L'interface fonctionne via HTTPS.

Connexions sécurisées
8. Support SAML pour fournir un point d'authentification unique auprès d'un fournisseur d'identité de confiance, afin que les informations d'identification des utilisateurs ne quittent pas les frontières du pare-feu.

Identification SAML
Le support SAML permet d'intégrer Zabbix avec divers fournisseurs d'identité locaux et cloud tels que Microsoft ADFS, OpenAM, SecurAuth, Okta, Auth0, ainsi que Azure, AWS ou Google Cloud Platform.
Facilité d'utilisation de Zabbix 5.0
1. Interface optimisée pour les écrans larges. Nous avons déplacé le menu du haut, où il manquait toujours de l'espace, vers le côté gauche de l'écran. Le menu est toujours affiché en mode complet, minimal et caché.

Interface optimisée pour écran large
2. Copie des widgets des tableaux permet de créer très rapidement de nouveaux TABLEAUX. Pour cela, il suffit de sélectionner le widget souhaité dans le TABLEAU, d'appuyer sur Copy

Copie du widget
et de coller le widget dans le tableau souhaité.

Insertion du widget copié
3. Exportation des graphiques. Pour copier un graphique et l'envoyer par exemple par e-mail, il est possible d'obtenir le graphique au format PNG en sélectionnant le widget souhaité et en appuyant sur Télécharger l'image.

Exportation des graphiques
4. Filtrage par étiquettes : Problème par gravité et Hôtes de problème. Il est désormais possible, par exemple, de rassembler toutes les données sur les problèmes liés à un nœud réseau dans un même centre de données.

Filtrage par étiquettes
5. Support des modules pour étendre l'interface Zabbix. Pour installer un module indépendant, il suffit de le copier dans un répertoire spécifique. Les modules permettent d'étendre la fonctionnalité existante de l'interface, de créer de nouvelles pages, de modifier la structure du menu, par exemple en ajoutant des éléments.
Tout utilisateur peut écrire et intégrer un module. Pour ce faire, le module est copié dans le dossier modules, après quoi il devient visible dans l'interface, où il peut être activé ou désactivé.

Ajout d'un nouveau module
6. Simplicité de navigation dans les ressources liées aux nœuds du réseau. Il y a Monitoring > Hosts une liste des dispositifs que Zabbix surveille s'affiche : nœuds du réseau, services, dispositifs réseau, etc. De plus, une navigation rapide vers les écrans, graphiques et problèmes des dispositifs spécifiques est disponible.
Nous avons supprimé les onglets Monitoring > Graphs et Monitoring > Webs, et toute la navigation se fait via Monitoring > Hosts. Les informations affichées peuvent être filtrées, y compris par tags, ce qui permet d'afficher les dispositifs désactivés.

Navigation dans les ressources liées aux nœuds du réseau
Par exemple, il est possible de sélectionner des dispositifs liés aux services des utilisateurs finaux en choisissant ‘Service’, ainsi qu'en définissant le niveau de gravité de ces problèmes.

Fonctionnalités de filtrage
7. Nouvelle opération de prétraitement — ‘Remplacement‘ permet d'effectuer plusieurs tâches utiles qui pouvaient auparavant être réalisées uniquement à l'aide d'expressions régulières, souvent trop complexes pour de nombreux utilisateurs.
Remplacer permet effectivement de remplacer une chaîne ou un caractère par d'autres, permettant ainsi de convertir simplement des données obtenues en format texte en une représentation numérique.

L'opérateur Remplacer
8. L'opérateur JSONPath, qui permet d'extraire les noms des attributs sous une forme conviviale

L'opérateur pour JSONPath
9. Affichage des messages électroniques de Zabbix. Dans les versions précédentes, tous les messages électroniques de Zabbix dans le dossier Entrants s'affichaient sous forme de liste. À partir de Zabbix 5.0, les messages seront regroupés par problèmes.

Regroupement des messages électroniques de Zabbix
10. Prise en charge des macros personnalisées pour IPMI pour le nom d'utilisateur et le mot de passe. Si des macros secrètes sont utilisées pour le nom d'utilisateur et le mot de passe, l'accès à leur valeur sera restreint.

Prise en charge des macros personnalisées
11. Modification en masse des macros personnalisées pour les nœuds du réseau. Dans la nouvelle version, il est possible d'ouvrir la liste des modèles, de sélectionner une liste de nœuds de réseau et d'ajouter des macros ou de modifier les valeurs des macros existantes,

Ajout et modification de macros personnalisées
et aussi de supprimer certains ou tous les macros des modèles sélectionnés pour les nœuds du réseau.

Suppression de macros utilisateur individuelles ou de toutes les macros
12. Contrôle du format des messages au niveau du mode de notification. Il y a Types de médias une nouvelle onglet est apparue Modèles de médias avec des modèles de messages.

Modèles de modes de notification
Pour différents types de messages, différents modèles peuvent être définis.

Définition d'un modèle pour le type de message
Dans les versions précédentes, il fallait gérer ces messages au niveau des actions, en définissant les messages et le sujet par défaut.

Gestion des modèles au niveau des actions
Dans la nouvelle version, tout peut être défini au niveau global, et au niveau des messages, les paramètres globaux peuvent être réécrits.

Gestion des modèles au niveau global
Pour la plupart des utilisateurs, il est suffisant de définir les formats des modèles au niveau du mode de notification. De plus, après l'importation d'un nouveau mode de notification, tous les formats de modèles correspondants en font déjà partie.
13. Application plus large de JavaScript. JavaScript est utilisé pour les scripts de prétraitement, pour les Webhook, etc. Travailler avec JavaScript dans la ligne de commande est complexe.
Une nouvelle utilitaire est utilisée dans Zabbix 5.0 - zabbix_js, qui exécute JavaScript, prenant des données, les traitant et générant des valeurs de sortie.

L'utilitaire zabbix_js

Exemples d'utilisation de l'utilitaire zabbix_js
14. Support des opérations textuelles par des expressions de déclenchement permet de vérifier les versions des composants installés, de comparer les valeurs avec des constantes, où la constante peut être une macro utilisateur,
{host:zabbix.version.last()}="5.0.0"
{host:zabbix.version.last()}="{$ZABBIX.VERSION}comparer la dernière valeur avec la valeur précédente, par exemple, lorsqu'il s'agit de données textuelles,
{host:text.last()} {host.text.prev()}ou
{host:text.last(#1)} {host.text.prev(#2)}ou comparer les valeurs textuelles de différentes métriques.
{hostA:textA.last()}={hostB:textB.last()}15. Automatisation et découverte.
- De nouvelles vérifications JMX sont disponibles pour obtenir et découvrir la liste des compteurs JMX, ce qui est très utile, par exemple, pour surveiller les applications Java, ainsi que pour automatiser la création d'éléments de surveillance, de métriques, de déclencheurs et de graphiques.
jmx.get[]et
jmx.discovery[]
Vérifications JMX - La nouvelle version dispose d'une clé pour surveiller les compteurs de performance Windows, qui est prise en charge par les anciens et nouveaux agents en russe et en anglais, et permet, par exemple, de détecter le nombre de processeurs, de systèmes de fichiers, de services, etc.

Surveillance des compteurs de performance Windows à l'aide de la clé perf_counter - La surveillance ODBC est devenue beaucoup plus simple. Auparavant, tous les paramètres pour la surveillance ODBC devaient être décrits dans un fichier externe /etc/odbc.ini, auquel on n'avait pas accès via l'interface Zabbix. Dans la nouvelle version, pratiquement tous les paramètres peuvent faire partie de la clé de la métrique.

Clé de métrique avec description des paramètresDans la nouvelle version, il est possible de spécifier le nom du serveur et le port au niveau de la métrique, et le nom et le mot de passe d'accès – en utilisant des macros secrètes pour la sécurité.

Utilisation de macros secrètes - Lors de l'utilisation du protocole IPMI pour surveiller le matériel, la possibilité de créer des modèles plus simples pour l'automatisation est devenue disponible grâce à ipmi.get.

ipmi.get
16. Test des éléments de données depuis l'interface. Dans Zabbix 5.0, il est possible de tester certains éléments de données et, surtout, des modèles d'éléments de données depuis l'interface.

Test des éléments de données
Tout problème qui survient est affiché dans l'interface.

Affichage des problèmes dans l'interface
Un algorithme similaire est utilisé pour les modèles d'éléments de données. De plus, si un élément de données n'est pas pris en charge, pour découvrir la raison de l'échec, il suffit simplement de cliquer sur Test.
17. Test des méthodes d'alerte, qui a été introduit dans Zabbix 4.4, est conservé, ce qui est important lors de l'intégration de Zabbix avec d'autres systèmes, par exemple, les systèmes de tickets.

Test des méthodes d'alerte
18. Prise en charge des macros utilisateur pour les prototypes d'éléments de données. Les macros LLD peuvent être utilisées pour déterminer les valeurs des macros utilisateur.

Utilisation des macros LLD pour déterminer les valeurs des macros utilisateur
19. Prise en charge des données Float64, qui sont nécessaires, principalement, pour surveiller des valeurs très élevées, dans Zabbix, cela est requis pour le soutien des données reçues des agents Prometheus.
Dans le cas de l'installation de Zabbix 5.0, la migration automatique des données vers le format Float64 ne se produit pas. L'utilisateur peut continuer à utiliser les anciens types de données. Les scripts de migration vers Float64 doivent être exécutés manuellement pour changer les types de données dans les tables historiques. Le remplacement automatique n'est pas utilisé car cela prend beaucoup de temps.
20. Amélioration de la scalabilité de Zabbix 5.0: optimisation de l'interface et élimination des "goulots d'étranglement"
- Les listes déroulantes ont été supprimées, par exemple, pour sélectionner des nœuds du réseau, car cette fonction n'est pas évolutive.
- Des limites "intégrées" pour les tailles de table ont été introduites Vue d'ensemble.
- De nouvelles fonctionnalités ont été ajoutées dans Monitoring > Hosts > Graphs.
- Une fonction de pagination est désormais disponible (Monitoring > Hosts > Web) là où elle n'était pas présente.
21. Compression améliorée
La compression dans Zabbix est basée sur l'extension pour PostgreSQL — TimescaleDB (depuis Zabbix 4.4). TimescaleDB assure le partitionnement automatique de la base de données et améliore ses performances, car celles-ci ne dépendent pratiquement pas de la taille de la base de données.
Dans Zabbix 5.0, il est possible d'ajuster la compression des données âgées de plus de 7 jours dans Administration > General > Housekeeping , ce qui réduit considérablement l'espace disque requis (d'environ dix fois, selon les utilisateurs), améliorant ainsi l'économie d'espace de disque et augmentant les performances.

Compression via TimescaleDB
22. Configuration SNMP au niveau de l'interface. Dans Zabbix 5.0, au lieu des trois types d'éléments de données, un seul type est utilisé — l'agent SNMP. Tous les attributs SNMP ont été transférés au niveau de l'interface des nœuds du réseau, ce qui simplifie les modèles, le passage entre les versions SNMP, etc.

Configuration SNMP au niveau de l'interface
23. Dépendance de la surveillance de la disponibilité des nœuds du réseau à la disponibilité du proxy permet d'afficher un problème de disponibilité du proxy comme prioritaire en cas d'indisponibilité des nœuds du réseau lors de la surveillance à l'aide d'un déclencheur avec la fonction nodata:
{HostA:item.nodata(1m)}=1
La disponibilité des nœuds du réseau est déterminée par la disponibilité du proxy
Fonction nodata prend par défaut en compte la disponibilité du proxy. Pour une vérification plus stricte, ne tenant pas compte de la disponibilité du proxy, un second paramètre est utilisé — strict:
{HostA:item.nodata(1m,strict)}=124. Gestion des règles de découverte de bas niveau. Zabbix 5.0 a introduit un filtre LLD qui permet de visualiser notamment les règles de détection non supportées

Filtre LLD
25. Possibilité de désactiver la reconnaissance du problème (unacknowledge) permet de corriger les erreurs et est utile lors de la création de flux de travail dépendant de la reconnaissance du problème.

Désactivation de la reconnaissance du problème
26. Modification des règles de détection de bas niveau — possibilité d'ajouter des exceptions lors de la détection d'objets à partir de la surveillance des systèmes de fichiers, ce qui permet lors de la détection de bas niveau de créer ou ne pas créer certains objets, déclencheurs, éléments de données, etc., de modifier l'importance des problèmes, d'ajouter des balises pour certains objets, d'exclure des objets, par exemple des systèmes de fichiers temporaires, de la recherche, de changer l'intervalle de mise à jour des données, etc.

Exclusion des systèmes de fichiers temporaires de la détection de bas niveau
Par exemple, il est possible de modifier le niveau de priorité des déclencheurs pour les systèmes de fichiers Oracle détectés, tout en maintenant le niveau de priorité des déclencheurs d'autres systèmes de fichiers au même niveau.

Modification du niveau de priorité des déclencheurs pour des systèmes de fichiers spécifiques
27. Nouveaux macros dans Zabbix 5.0 permettent d'améliorer la qualité de la surveillance.

Nouveaux macros dans Zabbix 5.0
28. Autres nouveautés dans Zabbix 5.0 :

Améliorations dans Zabbix 5.0
29. Arrêt du support

Fonctionnalité non supportée
Conclusion
Mettre à jour vers Zabbix 5.0 est très simple ! Installez et lancez les nouveaux fichiers binaires pour le serveur et les fichiers frontend, et le serveur mettra automatiquement à jour votre base de données.
Les informations sur la procédure de mise à jour de Zabbix sont disponibles à l'adresse :
IMPORTANT !
- La mise à jour des données historiques au format Float64 n'est pas obligatoire.
- Les données TimescaleDB sont en lecture seule.
- Version PHP requise minimale 7.2.
- DB2 n'est pas supporté comme backend pour le serveur Zabbix
(!) Les vidéos et les diapositives des présentations d'Alexey Vladyshev et d'autres intervenants du Zabbix Meetup Online (Russian) peuvent être visionnées .
Source : habr.com





