Upgrade from containers

Aperçu

Cette section décrit les étapes requises pour une mise à niveau réussie vers les conteneurs Zabbix 8.0.x.

Des ensembles d'instructions distincts sont disponibles pour :

Avant la mise à niveau, assurez-vous de lire les notes de mise à niveau correspondantes !

Avant de commencer la mise à niveau, vérifiez que les utilisateurs disposent des autorisations nécessaires sur la base de données à des fins de mise à niveau.

Pour les mises à niveau depuis Zabbix 6.0 ou une version antérieure, des déclencheurs déterministes devront être créés pendant la mise à niveau. Si la journalisation binaire est activée pour MySQL/MariaDB, cela nécessite des privilèges de superutilisateur ou la définition de la variable/du paramètre de configuration log_bin_trust_function_creators = 1. Consultez Scripts de création de la base de données pour savoir comment définir cette variable.

Notez que si elle est exécutée depuis une console, la variable ne sera définie que temporairement et sera supprimée lorsqu'un Docker sera redémarré. Dans ce cas, laissez votre service SQL en cours d'exécution, arrêtez uniquement le service zabbix-server en exécutant docker compose down zabbix-server, puis docker compose up -d zabbix-server.

Vous pouvez également définir cette variable dans le fichier de configuration.

Selon la taille de la base de données, la mise à niveau de la base de données vers la version 8.0 peut prendre beaucoup de temps.

Mise à niveau de l'image du composant Zabbix

Ces instructions permettent de mettre à niveau vos images Docker utilisées comme base pour les conteneurs de vos composants Zabbix.

Les étapes ci-dessous utilisent un proxy Zabbix comme exemple. Remplacez zabbix-proxy-sqlite3 par le nom du conteneur de votre composant.

1. Vérifiez tous les conteneurs afin d'identifier leurs noms et les versions actuelles des images :

docker ps -a

# CONTAINER ID   IMAGE                                           (...) NAMES
# 5a0c2e3d02b4   zabbix/zabbix-proxy-sqlite3:alpine-7.4-latest   (...) zabbix-proxy-sqlite3

2. Récupérez la nouvelle version de l'image :

docker pull zabbix/zabbix-proxy-sqlite3:alpine-8.0-latest

3. Arrêtez le conteneur du composant Zabbix :

docker stop zabbix-proxy-sqlite3

4. Supprimez le conteneur du composant Zabbix :

Assurez-vous d'avoir noté tous les indicateurs de configuration et les montages de volumes utilisés dans la commande docker run d'origine avant de continuer, car ils seront nécessaires pour recréer le conteneur.

docker rm zabbix-proxy-sqlite3

5. Démarrez un nouveau conteneur à l'aide de l'image mise à jour :

docker run --name zabbix-proxy-sqlite3 \
  -e ZBX_SERVER_HOST=192.0.2.0 \
  -e ZBX_PROXYMODE=0 \
  -e ZBX_HOSTNAME=zabbix-proxy-sqlite3 \
  -v zabbix-proxy-data:/var/lib/zabbix/db_data \
  --init \
  -d \
  zabbix/zabbix-proxy-sqlite3:alpine-8.0-latest

Pour plus d'informations sur l'exécution des conteneurs Zabbix, consultez Docker (déploiement manuel).

6. Vérifiez que la mise à niveau a réussi en consultant les journaux du conteneur :

docker logs -f zabbix-proxy-sqlite3

Mise à niveau du fichier Docker Compose

Ces instructions permettent de mettre à niveau les fichiers Docker Compose utilisés pour déployer les composants Zabbix. Suivez ces instructions si vous avez installé Zabbix à l’aide de Docker Compose.

1. Vérifiez tous les conteneurs afin d’identifier leurs noms et les versions actuelles des images :

docker ps -a

# CONTAINER ID   IMAGE                                             (...) NAMES
# d095f486deef   zabbix/zabbix-server-mysql:alpine-7.4-latest      (...) zabbix-docker-zabbix-server-1
# 70627d833da0   zabbix/zabbix-web-nginx-mysql:alpine-7.4-latest   (...) zabbix-docker-zabbix-web-nginx-mysql-1
# aaaa664cc185   zabbix/zabbix-server-mysql:alpine-7.4-latest      (...) zabbix-docker-server-db-init-1
# 9ab3e77492ff   mysql:8.0-oracle                                  (...) zabbix-docker-mysql-server-1

2. Accédez au dépôt Docker Zabbix que vous avez précédemment cloné, récupérez les dernières mises à jour et basculez vers la branche 8.0 :

Si vous avez modifié .env, compose.yaml ou d’autres fichiers dans votre dépôt local, un git pull peut les écraser. Sauvegardez toutes les modifications locales avant d’exécuter cette étape.

cd zabbix-docker
git pull
git checkout 8.0

3. Déployez les composants Zabbix à l’aide du fichier Docker Compose mis à jour :

# Avec MySQL comme base de données :
docker compose -f ./compose.yaml up -d

# Avec PostgreSQL comme base de données :
docker compose -f ./compose_pgsql.yaml up -d

Une fois tous les conteneurs recréés et démarrés, la reprise de la collecte des données peut prendre de 1 à 3 minutes. Pour plus d’informations sur l’exécution des conteneurs Zabbix, consultez Docker Compose.

4. Vérifiez que la mise à niveau a réussi en consultant les journaux du conteneur (remplacez zabbix-docker-zabbix-server-1 par le nom du conteneur de votre composant) :

docker logs -f zabbix-docker-zabbix-server-1