3 Aggiornamento dai container

Panoramica

Questa sezione descrive i passaggi necessari per un upgrade riuscito ai container di Zabbix 7.4.x.

Sono disponibili set separati di istruzioni per:

Prima dell'upgrade assicurati di leggere le note di upgrade pertinenti!

Prima di avviare l'upgrade, verifica che gli utenti dispongano dei permessi necessari sul database per le operazioni di upgrade.

Per gli upgrade da Zabbix 6.0 o versioni precedenti, durante l'upgrade sarà necessario creare trigger deterministici. Se il binary logging è abilitato per MySQL/MariaDB, ciò richiede privilegi di superuser oppure l'impostazione del parametro di variabile/configurazione log_bin_trust_function_creators = 1. Consulta Database creation scripts per le istruzioni su come impostare la variabile.

Nota che, se eseguita da una console, la variabile verrà impostata solo temporaneamente e verrà rimossa quando Docker viene riavviato. In questo caso, mantieni in esecuzione il servizio SQL, arresta solo il servizio zabbix-server eseguendo docker compose down zabbix-server e poi docker compose up -d zabbix-server.

In alternativa, puoi impostare questa variabile nel file di configurazione.

A seconda delle dimensioni del database, l'upgrade del database alla versione 7.4 può richiedere molto tempo.

Aggiornamento dell'immagine del componente Zabbix

Queste istruzioni aggiornano le immagini Docker usate come base per i container dei componenti Zabbix.

I passaggi seguenti usano un Zabbix proxy come esempio. Sostituisci zabbix-proxy-sqlite3 con il nome del container del tuo componente.

1. Controlla tutti i container per identificarne i nomi e le versioni correnti delle immagini:

docker ps -a

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

2. Scarica la nuova versione dell'immagine:

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

3. Arresta il container del componente Zabbix:

docker stop zabbix-proxy-sqlite3

4. Rimuovi il container del componente Zabbix:

Assicurati di aver annotato tutti i flag di configurazione e i mount dei volumi usati nel comando docker run originale prima di procedere, perché saranno necessari per ricreare il container.

docker rm zabbix-proxy-sqlite3

5. Avvia un nuovo container usando l'immagine aggiornata:

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

Per ulteriori informazioni sull'esecuzione dei container Zabbix, consulta Docker (distribuzione manuale).

6. Verifica che l'aggiornamento sia andato a buon fine controllando i log del container:

docker logs -f zabbix-proxy-sqlite3

Aggiornamento del file Docker Compose

Queste istruzioni aggiornano i file Docker Compose utilizzati per distribuire i componenti di Zabbix. Segui queste istruzioni se hai installato Zabbix usando Docker Compose.

1. Controlla tutti i container per identificarne i nomi e le versioni correnti delle immagini:

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. Vai nella repository Docker di Zabbix che hai clonato in precedenza, scarica gli aggiornamenti più recenti e passa al branch 7.4:

Se hai modificato .env, compose.yaml o altri file nella tua repository locale, un git pull potrebbe sovrascriverli. Esegui un backup di eventuali modifiche locali prima di procedere con questo passaggio.

cd zabbix-docker
git pull
git checkout 7.4

3. Distribuisci i componenti di Zabbix usando il file Docker Compose aggiornato:

# Con MySQL come database:
docker compose -f ./compose.yaml up -d

# Con PostgreSQL come database:
docker compose -f ./compose_pgsql.yaml up -d

Dopo che tutti i container sono stati ricreati e avviati, potrebbero essere necessari da 1 a 3 minuti prima che la raccolta dei dati riprenda. Per ulteriori informazioni sull'esecuzione dei container Zabbix, consulta Docker Compose.

4. Verifica che l'aggiornamento sia andato a buon fine controllando i log del container (sostituisci zabbix-docker-zabbix-server-1 con il nome del container del tuo componente):

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