3 Aktualizacja z kontenerów

Omówienie

Ta sekcja opisuje kroki wymagane do pomyślnego upgrade do kontenerów Zabbix 7.0.x.

Dostępne są oddzielne zestawy instrukcji dla:

Przed upgrade zapoznaj się z odpowiednimi uwagami dotyczącymi upgrade!

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

W przypadku upgrade z Zabbix 6.0 lub starszej wersji podczas upgrade będzie trzeba utworzyć deterministyczne wyzwalacze. Jeśli włączone jest binary logging dla MySQL/MariaDB, wymaga to uprawnień superusera lub ustawienia parametru zmiennej/konfiguracyjnego log_bin_trust_function_creators = 1. Zobacz Database creation scripts, aby uzyskać instrukcje dotyczące ustawiania tej zmiennej.

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

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

W zależności od rozmiaru bazy danych upgrade bazy danych do wersji 7.0 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-6.4-latest   (...) zabbix-proxy-sqlite3

2. Pobierz nową wersję obrazu:

docker pull zabbix/zabbix-proxy-sqlite3:alpine-7.0-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 i 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 z użyciem 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.0-latest

Więcej informacji o uruchamianiu kontenerów Zabbix można znaleźć w sekcji Docker (ręczne 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-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. Przejdź do repozytorium Zabbix Docker, które wcześniej sklonowałeś, pobierz najnowsze aktualizacje i przełącz się na gałąź 7.0:

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

cd zabbix-docker
git pull
git checkout 7.0

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ę powodzeniem, analizując logi kontenera (zastąp zabbix-docker-zabbix-server-1 nazwą kontenera swojego komponentu):

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