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 dei componenti Zabbix
Queste istruzioni aggiornano le immagini Docker utilizzate come base per i container dei componenti Zabbix.
I passaggi seguenti utilizzano 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 utilizzati 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 utilizzando l'immagine aggiornata:
docker run --name zabbix-proxy-sqlite3 \
-e ZBX_SERVER_HOST=192.0.2.0 \
-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, vedi Docker (distribuzione manuale).
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. Seguire queste istruzioni se Zabbix è stato installato utilizzando Docker Compose.
1. Controllare 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. Accedere al repository Docker di Zabbix clonato in precedenza, scaricare gli ultimi aggiornamenti e passare al branch 8.0:
Se .env, compose.yaml o altri file nel repository locale sono stati modificati, un git pull potrebbe sovrascriverli.
Eseguire un backup di tutte le modifiche locali prima di eseguire questo passaggio.
cd zabbix-docker
git pull
git checkout 8.0
3. Distribuire i componenti di Zabbix utilizzando 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, vedere Docker Compose.
4. Verificare che l'aggiornamento sia stato completato correttamente controllando i log del container (sostituire zabbix-docker-zabbix-server-1 con il nome del container del proprio componente):
docker logs -f zabbix-docker-zabbix-server-1