Cette section fournit les étapes nécessaires à une mise à jour réussie de Zabbix 3.4 vers Zabbix 4.0.x en utilisant les sources officielles Zabbix.
Même si la mise à jour des agents Zabbix n'est pas obligatoire (mais recommandée), le serveur Zabbix et les proxys doivent être de la même version majeure. Par conséquent, dans une configuration serveur-proxy, le serveur Zabbix et tous les proxys doivent être arrêtés et mis à jour.
Pour minimiser les temps d'arrêt et la perte de données lors de la mise à jour, il est recommandé d'arrêter et de mettre à jour le serveur Zabbix, puis d'arrêter, de mettre à jour et de démarrer les proxys Zabbix les uns après les autres. Lorsque tous les proxys sont mis à jour, démarrez le serveur Zabbix. Pendant l'indisponibilité du serveur Zabbix, les proxys en cours d’exécution continueront à collecter et à stocker des données et transmettront les données au serveur Zabbix lorsque le serveur sera de nouveau opérationnel. Les notifications de problèmes lors de l'arrêt du serveur Zabbix ne seront générées qu'après le démarrage du serveur mis à jour.
Il est possible de mettre à jour le serveur uniquement et d'avoir des proxys plus anciens, non mis à jour, qui rapportent des données à un serveur plus récent (les proxys ne peuvent cependant pas actualiser leur configuration). Cette approche, cependant, n'est pas recommandée et n'est pas supportée par Zabbix et ce choix est entièrement à vos risques et périls.
Notez qu'avec la base de données SQLite sur les proxys, les données d'historique des proxys avant la mise à jour seront perdues, car la mise à jour de base de données SQLite n'est pas prise en charge et le fichier de base de données SQLite doit être supprimé manuellement. Lorsque le proxy est démarré pour la première fois et que le fichier de base de données SQLite est manquant, le proxy le crée automatiquement.
Selon la taille de la base de données, la mise à jour de la base de données vers la version 4.0 peut prendre beaucoup de temps.
Avant la mise à jour, assurez-vous de lire les ** notes de mise à jour pertinentes ! **
Les notes de mise à jour suivantes sont disponibles :
Mise à jour depuis | Lire les notes de mise à jour | Notes importantes/changements entre les versions |
---|---|---|
3.4.x | Pour 4.0 | Les bibliothèques 'libpthread' et 'zlib' sont maintenant obligatoires ; Prise en charge du protocole de texte brut supprimée et l'en-tête est obligatoire ; Les agents Zabbix de version antérieure à la version 1.4 ne sont plus supportés ; Le paramètre server dans la configuration du proxy passif est maintenant obligatoire. |
3.2.x | Pour 3.4 | Support SQLite en tant que base de données abandonné pour le serveur et l’interface Web Zabbix ; Perl Compatible Regular Expressions (PCRE) supporté au lieu de POSIX étendu ; bibliothèques 'libpcre' et 'libevent' obligatoires pour le serveur Zabbix ; Vérifications de code de sortie ajoutées pour les paramètres utilisateurs, les commandes distantes et les éléments system.run[] sans l'indicateur 'nowait' ainsi que les scripts exécutés par le serveur Zabbix ; La passerelle Java Zabbix doit être mise à jour pour prendre en charge de nouvelles fonctionnalités. |
3.0.x | pour 3.2 | La mise à jour de la base de données peut être lente, en fonction de la taille de la table d'historique. |
2.4.x | pour 3.0 | La version minimale requise de PHP est passée de 5.3.0 à 5.4.0 ; Le paramètre de l'agent LogFile doit être spécifié. |
2.2.x | pour 2.4 | Suppression de la surveillance distribuée basée sur un noeud. |
2.0.x | pour 2.2 | La version minimale requise de PHP est passée de 5.1.6 à 5.3.0 ; Une base de données MySQL sensible à la casse est nécessaire pour le bon fonctionnement du serveur ; Les jeux de caractères utf8 et utf8_bin sont nécessaires pour que le serveur Zabbix fonctionne correctement avec la base de données MySQL. Voir les scripts de création de base de données. L'extension PHP 'mysqli' est requise au lieu de 'mysql'. |
Vous pouvez également vérifier les pré-requis pour la version 4.0.
Il peut être pratique d'exécuter deux sessions SSH parallèles pendant la mise à jour, en exécutant les étapes de mise à jour dans la première et en surveillant les journaux de serveur/proxy dans la seconde. Par exemple, exécutez tail -f zabbix_server.log
ou tail -f zabbix_proxy.log
dans la deuxième session SSH en affichant les dernières entrées du fichier journal et les erreurs possibles en temps réel. Cela peut être critique pour les instances de production.
Arrêter le serveur Zabbix pour être sûr qu’aucune nouvelle donnée ne soit insérée en base de données.
Il s’agit d’une étape très importante. Vérifiez que vous disposez d’une sauvegarde de votre base de données. Cela aidera si la procédure de mise à jour échoue (manque d’espace disque, arrêt inopiné ou tout autre problème imprévu).
Faites une copie de sauvegarde des binaires Zabbix, des fichiers de configuration et du répertoire des fichiers PHP.
Utilisez les instructions pour compiler le serveur Zabbix depuis les sources.
Voir les notes de mise à jour pour les détails sur les changements obligatoires.
Pour les paramètres optionnels, voir la section Nouveautés.
Démarrez les nouveaux binaires. Vérifiez les fichiers de logs pour voir si les fichiers binaires ont démarré avec succès.
Le serveur Zabbix mettra automatiquement à jour la base de données. Au démarrage, le serveur Zabbix signale les versions de base de données actuelles (obligatoires et facultatives) et requises. Si la version actuelle est antérieure à la version requise, le serveur Zabbix exécute automatiquement les correctifs requis de mise à jour de base de données. La progression (en pourcentage) de la mise à jour de la base de données est écrite dans le fichier de logs du serveur Zabbix. Lorsque la mise à jour est terminée, un message "Mise à jour de la base de données entièrement terminée" est écrit dans le fichier de logs. Si l'un des correctifs de mise à jour échoue, le serveur Zabbix ne démarre pas. Le serveur Zabbix ne démarrera pas non plus si la version de base de données actuelle est plus récente que celle requise. Le serveur Zabbix démarre uniquement si la version de base de données obligatoire actuelle correspond à la version obligatoire requise.
8673:20161117:104750.259 current database version (mandatory/optional): 03040000/03040000
8673:20161117:104750.259 required mandatory version: 03040000
Avant de démarrer le serveur :
La version minimum requise de PHP est 5.4.0. Mettez à jour si nécessaire et suivez les instructions d’installation.
Après la mise à jour, vous devrez peut-être effacer les cookies et le cache du navigateur Web pour que l'interface Web de Zabbix fonctionne correctement.
Arrêtez le proxy Zabbix.
Faites une copie de sauvegarde des binaires du proxy Zabbix et des fichiers de configuration.
Utilisez les instructions pour compiler le proxy Zabbix depuis les sources.
Il n’y a pas de changements obligatoires dans cette version pour les paramètres du proxy. Pour les paramètres optionnels, voir la section Nouveautés.
Démarrez le nouveau proxy Zabbix. Vérifiez les fichiers de logs pour voir si le proxy a démarré correctement.
Zabbix mettra automatiquement à jour la base de données. La mise à jour de la base de données a lieu de la même manière que lors du démarrage du serveur Zabbix.
La mise à jour des agents n’est pas obligatoire. Vous n'avez besoin de mettre à jour les agents que si vous devez accéder à de nouvelles fonctionnalités.
Arrêtez l’agent Zabbix.
Faites une copie de sauvegarde des binaires de l’agent Zabbix et des fichiers de configuration.
Utilisez les instructions pour compiler l’agent Zabbix depuis les sources.
Sinon, vous pouvez télécharger un agent pré-compilé depuis la page de téléchargement Zabbix.
Il n’y a pas de changements obligatoires dans cette version pour les paramètres d’agent.
Démarrez le nouvel agent Zabbix. Vérifiez les fichiers de logs pour vérifier que l’agent a démarré correctement.
Lors de la mise à jour entre les versions mineures de 4.0.x (par exemple de 4.0.1 à 4.0.3), il est nécessaire d'exécuter les mêmes actions pour le serveur/proxy/agent, que lors de la mise à jour entre les versions majeures. La seule différence est que lors de la mise à jour entre les versions mineures, aucune modification de la base de données n'est effectuée.