3 Aktualizacja z kontenerów

Omówienie

Ta sekcja opisuje kroki wymagane do pomyślnego uaktualnienia kontenerów Zabbix 7.4.x.

Dostępne są oddzielne zestawy instrukcji dla:

Przed uaktualnieniem upewnij się, że zapoznałeś się z odpowiednimi uwagami dotyczącymi uaktualnienia!

Przed rozpoczęciem uaktualnienia sprawdź, czy użytkownicy mają odpowiednie uprawnienia do bazy danych na potrzeby uaktualnienia.

W przypadku uaktualnień z Zabbix 6.0 lub starszego podczas uaktualnienia będzie trzeba utworzyć deterministyczne wyzwalacze. Jeśli dla MySQL/MariaDB włączone jest binarne logowanie, wymaga to uprawnień superużytkownika lub ustawienia parametru zmiennej/konfiguracji log_bin_trust_function_creators = 1. Instrukcje dotyczące ustawiania tej zmiennej znajdują się w sekcji Skrypty tworzenia bazy danych.

Należy pamiętać, że jeśli polecenie jest wykonywane z konsoli, zmienna zostanie ustawiona tylko tymczasowo i zostanie usunięta po ponownym uruchomieniu Dockera. W takim przypadku pozostaw uruchomioną usługę SQL, a zatrzymaj tylko usługę zabbix-server, wykonując docker compose down zabbix-server, a następnie docker compose up -d zabbix-server.

Alternatywnie można ustawić tę zmienną w pliku konfiguracyjnym.

W zależności od rozmiaru bazy danych uaktualnienie bazy danych do wersji 7.4 może zająć dużo czasu.

Aktualizacja obrazu komponentu Zabbix

Te instrukcje służą do aktualizacji obrazów Docker używanych jako baza dla kontenerów komponentów Zabbix.

Poniższe kroki wykorzystują proxy Zabbix jako przykład. Zastąp zabbix-proxy-sqlite3 nazwą kontenera swojego komponentu.

1. Sprawdź wszystkie kontenery, aby zidentyfikować ich nazwy i bieżące wersje obrazów:

docker ps -a

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

2. Pobierz nową wersję obrazu:

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

3. Zatrzymaj kontener komponentu Zabbix:

docker stop zabbix-proxy-sqlite3

4. Usuń kontener komponentu Zabbix:

Upewnij się, że przed kontynuowaniem zanotowano wszystkie flagi konfiguracji oraz montowania woluminów użyte w oryginalnym poleceniu docker run, ponieważ będą one potrzebne do odtworzenia kontenera.

docker rm zabbix-proxy-sqlite3

5. Uruchom nowy kontener, używając zaktualizowanego obrazu:

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

Więcej informacji na temat uruchamiania kontenerów Zabbix można znaleźć w sekcji Docker (manualne wdrożenie).

6. Sprawdź, czy aktualizacja zakończyła się powodzeniem, analizując logi kontenera:

docker logs -f zabbix-proxy-sqlite3

Aktualizacja pliku Docker Compose

Te instrukcje służą do aktualizacji plików Docker Compose używanych do wdrażania komponentów Zabbix. Postępuj zgodnie z tymi instrukcjami, jeśli zainstalowałeś Zabbix przy użyciu Docker Compose.

1. Sprawdź wszystkie kontenery, aby zidentyfikować ich nazwy i bieżące wersje obrazów:

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. Przejdź do repozytorium Zabbix Docker, które wcześniej sklonowałeś, pobierz najnowsze aktualizacje i przełącz się na gałąź 7.4:

Jeśli zmodyfikowałeś plik .env, compose.yaml lub inne pliki w lokalnym repozytorium, polecenie git pull może je nadpisać. Przed wykonaniem tego kroku wykonaj kopię zapasową wszystkich lokalnych zmian.

cd zabbix-docker
git pull
git checkout 7.4

3. Wdróż komponenty Zabbix, używając zaktualizowanego pliku Docker Compose:

# Z MySQL jako bazą danych:
docker compose -f ./compose.yaml up -d

# Z PostgreSQL jako bazą danych:
docker compose -f ./compose_pgsql.yaml up -d

Po ponownym utworzeniu i uruchomieniu wszystkich kontenerów wznowienie zbierania danych może potrwać 1—3 minuty. Więcej informacji o uruchamianiu kontenerów Zabbix znajdziesz w sekcji Docker Compose.

4. Sprawdź, czy aktualizacja zakończyła się pomyślnie, analizując logi kontenera (zastąp zabbix-docker-zabbix-server-1 nazwą kontenera swojego komponentu):

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