3 Upgrade von Containern

Übersicht

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

Separate Anleitungen sind verfügbar für:

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

Bevor Sie mit dem Upgrade beginnen, stellen Sie sicher, 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 das Binär-Logging für MySQL/MariaDB aktiviert ist, erfordert dies Superuser-Berechtigungen oder das Setzen des Variablen-/Konfigurationsparameters log_bin_trust_function_creators = 1. Siehe Datenbank-Erstellungsskripte für Anweisungen zum Setzen der Variable.

Beachten Sie, dass die Variable bei Ausführung über eine Konsole nur vorübergehend gesetzt wird und beim Neustart von Docker entfernt wird. In diesem Fall lassen Sie 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.

Abhängig von der Größe der Datenbank kann das Datenbank-Upgrade auf Version 7.4 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-7.2-latest   (...) zabbix-proxy-sqlite3

2. Laden Sie die neue Image-Version herunter:

docker pull zabbix/zabbix-proxy-sqlite3:alpine-7.4-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 alle Konfigurations-Flags und Volume-Mounts notiert haben, die im ursprünglichen docker run-Befehl verwendet wurden, bevor Sie fortfahren, da sie 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.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.4-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. Befolgen Sie diese Anweisungen, 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-7.2-latest      (...) zabbix-docker-zabbix-server-1
# 70627d833da0   zabbix/zabbix-web-nginx-mysql:alpine-7.2-latest   (...) zabbix-docker-zabbix-web-nginx-mysql-1
# aaaa664cc185   zabbix/zabbix-server-mysql:alpine-7.2-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.4-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.4

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 anhand der Container-Protokolle, ob das Upgrade erfolgreich war (ersetzen Sie zabbix-docker-zabbix-server-1 durch den Namen des Containers Ihrer Komponente):

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