Upgrade von Containern
Übersicht
Dieser Abschnitt beschreibt die Schritte, die für ein erfolgreiches Upgrade auf Zabbix-Container der Version 8.0.x erforderlich sind.
Separate Anweisungssätze sind verfügbar für:
Lesen Sie vor dem Upgrade unbedingt die entsprechenden Upgrade-Hinweise!
Bevor Sie mit dem Upgrade beginnen, vergewissern Sie sich, dass Benutzer über die erforderlichen Berechtigungen für die Datenbank zu Upgrade-Zwecken verfügen.
Bei Upgrades von Zabbix 6.0 oder älter müssen während des Upgrades deterministische Auslöser erstellt werden.
Wenn die binäre Protokollierung für MySQL/MariaDB aktiviert ist, sind dafür Superuser-Rechte oder das Setzen der Variablen/des Konfigurationsparameters log_bin_trust_function_creators = 1 erforderlich.
Anweisungen zum Setzen der Variablen finden Sie unter Skripte zur Datenbankerstellung.
Beachten Sie, dass die Variable bei Ausführung über eine Konsole nur temporär gesetzt wird und beim Neustart eines Docker verworfen wird.
Lassen Sie in diesem Fall Ihren SQL-Dienst weiterlaufen und stoppen Sie nur den Dienst zabbix-server, indem Sie docker compose down zabbix-server und anschließend docker compose up -d zabbix-server ausführen.
Alternativ können Sie diese Variable in der Konfigurationsdatei setzen.
Abhängig von der Größe der Datenbank kann das Upgrade der Datenbank auf Version 8.0 lange dauern.
Upgrade des Zabbix-Komponenten-Images
Mit diesen Anweisungen aktualisieren Sie Ihre Docker-Images, die als Basis für Ihre Zabbix-Komponenten-Container verwendet werden.
In den folgenden Schritten wird ein Zabbix Proxy als Beispiel verwendet.
Ersetzen Sie zabbix-proxy-sqlite3 durch den Containernamen Ihrer Komponente.
1. Prüfen Sie alle Container, um ihre Namen und die aktuellen Image-Versionen zu ermitteln:
docker ps -a
# CONTAINER ID IMAGE (...) NAMES
# 5a0c2e3d02b4 zabbix/zabbix-proxy-sqlite3:alpine-7.4-latest (...) zabbix-proxy-sqlite3
2. Laden Sie die neue Image-Version herunter:
docker pull zabbix/zabbix-proxy-sqlite3:alpine-8.0-latest
3. Stoppen Sie den Zabbix-Komponenten-Container:
docker stop zabbix-proxy-sqlite3
4. Entfernen Sie den Zabbix-Komponenten-Container:
Stellen Sie sicher, dass Sie vor dem Fortfahren alle Konfigurations-Flags und Volume-Mounts notiert haben, die im ursprünglichen Befehl docker run verwendet wurden, da diese zum Neuerstellen des Containers benötigt werden.
docker rm zabbix-proxy-sqlite3
5. Starten Sie einen neuen Container mit dem aktualisierten Image:
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
Weitere Informationen zum Ausführen von Zabbix-Containern finden Sie unter Docker (manuelle Bereitstellung).
6. Vergewissern Sie sich, dass das Upgrade erfolgreich war, indem Sie die Container-Logs prüfen:
docker logs -f zabbix-proxy-sqlite3
Upgrade der Docker-Compose-Datei
Mit diesen Anweisungen werden die Docker-Compose-Dateien aktualisiert, die für die Bereitstellung von Zabbix-Komponenten verwendet werden. Befolgen Sie diese Anweisungen, wenn Sie Zabbix mit Docker Compose installiert haben.
1. Überprüfen Sie alle Container, um ihre Namen und die aktuellen Image-Versionen zu ermitteln:
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. Wechseln Sie in das zuvor geklonte Zabbix-Docker-Repository, laden Sie die neuesten Aktualisierungen herunter und wechseln Sie zum Branch 8.0:
Wenn Sie .env, compose.yaml oder andere Dateien in Ihrem lokalen Repository geändert haben, kann ein git pull diese überschreiben.
Sichern Sie alle lokalen Änderungen, bevor Sie diesen Schritt ausführen.
cd zabbix-docker
git pull
git checkout 8.0
3. Stellen Sie die Zabbix-Komponenten mit der aktualisierten Docker-Compose-Datei bereit:
# Mit MySQL als Datenbank:
docker compose -f ./compose.yaml up -d
# Mit PostgreSQL als Datenbank:
docker compose -f ./compose_pgsql.yaml up -d
Nachdem alle Container neu erstellt und gestartet wurden, kann es 1–3 Minuten dauern, bis die Datenerfassung wieder aufgenommen wird. Weitere Informationen zum Ausführen von Zabbix-Containern finden Sie unter Docker Compose.
4. Vergewissern Sie sich, dass das Upgrade erfolgreich war, indem Sie die Container-Logs prüfen (ersetzen Sie zabbix-docker-zabbix-server-1 durch den Namen des Containers Ihrer Komponente):
docker logs -f zabbix-docker-zabbix-server-1