3 Upgrade von Containern

Übersicht

Dieser Abschnitt beschreibt die Schritte, die für ein erfolgreiches Upgrade auf Zabbix 7.0.x-Container erforderlich sind.

Es stehen separate Anweisungen für folgende Fälle zur Verfügung:

Lesen Sie vor dem Upgrade unbedingt die relevanten Upgrade-Hinweise!

Vergewissern Sie sich vor dem Start des Upgrades, dass Benutzer über die erforderlichen Berechtigungen für die Datenbank für Upgrade-Zwecke verfügen.

Bei Upgrades von Zabbix 6.0 oder älter müssen während des Upgrades deterministische Auslöser erstellt werden. Wenn das Binär-Logging für MySQL/MariaDB aktiviert ist, sind dafür Superuser-Rechte oder das Setzen des Variablen-/Konfigurationsparameters log_bin_trust_function_creators = 1 erforderlich. Anweisungen zum Setzen der Variable finden Sie unter Datenbank-Erstellungsskripte.

Beachten Sie, dass die Variable bei Ausführung über eine Konsole nur vorübergehend gesetzt wird und beim Neustart von Docker wieder entfernt 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 ausführen und anschließend docker compose up -d zabbix-server.

Alternativ können Sie diese Variable in der Konfigurationsdatei setzen.

Je nach Größe der Datenbank kann das Datenbank-Upgrade auf Version 7.0 lange dauern.

Zabbix-Komponenten-Image aktualisieren

Mit diesen Anweisungen aktualisieren Sie Ihre Docker-Images, die als Basis für Ihre Zabbix-Komponenten-Container verwendet werden.

Die folgenden Schritte verwenden einen Zabbix Proxy als Beispiel. Ersetzen Sie zabbix-proxy-sqlite3 durch den Containernamen Ihrer Komponente.

1. Prüfen Sie alle Container, um ihre Namen und aktuellen Image-Versionen zu ermitteln:

docker ps -a

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

2. Laden Sie die neue Image-Version herunter:

docker pull zabbix/zabbix-proxy-sqlite3:alpine-7.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 docker run-Befehl verwendet wurden, da sie zum erneuten Erstellen 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.1 \
  -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-7.0-latest

Weitere Informationen zum Ausführen von Zabbix-Containern finden Sie unter Docker (manuelle Bereitstellung).

6. Überprüfen Sie anhand der Container-Logs, ob das Upgrade erfolgreich war:

docker logs -f zabbix-proxy-sqlite3

Docker Compose-Datei aktualisieren

Mit diesen Anweisungen werden die Docker-Compose-Dateien aktualisiert, die für die Bereitstellung von Zabbix-Komponenten verwendet werden. Führen Sie diese Anweisungen aus, wenn Sie Zabbix mit Docker Compose installiert haben.

1. Prüfen Sie alle Container, um ihre Namen und aktuellen Image-Versionen zu ermitteln:

docker ps -a

# CONTAINER ID   IMAGE                                             (...) NAMES
# d095f486deef   zabbix/zabbix-server-mysql:alpine-6.4-latest      (...) zabbix-docker-zabbix-server-1
# 70627d833da0   zabbix/zabbix-web-nginx-mysql:alpine-6.4-latest   (...) zabbix-docker-zabbix-web-nginx-mysql-1
# aaaa664cc185   zabbix/zabbix-server-mysql:alpine-6.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 7.0-Branch:

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 7.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. Überprüfen Sie den Erfolg des Upgrades anhand der Container-Logs (ersetzen Sie zabbix-docker-zabbix-server-1 durch den Namen des Containers Ihrer Komponente):

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