3 Aggiornamento dai container

Panoramica

Questa sezione descrive i passaggi necessari per un aggiornamento corretto ai container di Zabbix 7.0.x.

Sono disponibili set separati di istruzioni per:

Prima dell'aggiornamento, assicurati di leggere le pertinenti note di aggiornamento!

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

Per gli aggiornamenti da Zabbix 6.0 o versioni precedenti, durante l'aggiornamento 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 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 e 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'aggiornamento del database alla versione 7.0 potrebbe 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 proxy Zabbix 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-6.4-latest   (...) zabbix-proxy-sqlite3

2. Scarica la nuova versione dell'immagine:

docker pull zabbix/zabbix-proxy-sqlite3:alpine-7.0-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, poiché 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.0-latest

Per ulteriori informazioni sull'esecuzione dei container Zabbix, consulta Docker (manual deployment).

6. Verifica che l'aggiornamento sia riuscito 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-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. Vai nel repository Docker di Zabbix che hai clonato in precedenza, scarica gli aggiornamenti più recenti e passa al branch 7.0:

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

cd zabbix-docker
git pull
git checkout 7.0

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, vedi Docker Compose.

4. Verifica che l'aggiornamento sia riuscito 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