Aggiornamento dai container

Panoramica

Questa sezione descrive i passaggi necessari per un aggiornamento riuscito ai container di Zabbix 8.0.x.

Sono disponibili insiemi separati di istruzioni per:

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

Prima di avviare l'aggiornamento, verificare che gli utenti dispongano delle autorizzazioni necessarie sul database ai fini dell'aggiornamento.

Per gli aggiornamenti da Zabbix 6.0 o versioni precedenti, durante l'aggiornamento dovranno essere creati trigger deterministici. Se la registrazione binaria è abilitata per MySQL/MariaDB, ciò richiede privilegi di superutente oppure l'impostazione della variabile/del parametro di configurazione log_bin_trust_function_creators = 1. Per istruzioni su come impostare la variabile, vedere Script di creazione del database.

Si noti che, se eseguita da console, la variabile verrà impostata solo temporaneamente e verrà rimossa al riavvio di un Docker. In questo caso, mantenere in esecuzione il servizio SQL, arrestare solo il servizio zabbix-server eseguendo docker compose down zabbix-server e quindi docker compose up -d zabbix-server.

In alternativa, è possibile impostare questa variabile nel file di configurazione.

A seconda delle dimensioni del database, l'aggiornamento del database alla versione 8.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-7.4-latest   (...) zabbix-proxy-sqlite3

2. Scarica la nuova versione dell'immagine:

docker pull zabbix/zabbix-proxy-sqlite3:alpine-8.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-8.0-latest

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

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

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 8.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 1-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 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