Upgrade from containers
Przegląd
Ta sekcja opisuje kroki wymagane do pomyślnego uaktualnienia kontenerów Zabbix 8.0.x.
Dostępne są oddzielne zestawy instrukcji dla:
Przed uaktualnieniem należy zapoznać się z odpowiednimi uwagami do uaktualnienia!
Przed rozpoczęciem uaktualnienia należy sprawdzić, czy użytkownicy mają niezbędne uprawnienia do bazy danych na potrzeby uaktualnienia.
W przypadku uaktualnienia z Zabbix 6.0 lub starszego podczas uaktualnienia konieczne będzie utworzenie deterministycznych wyzwalaczy.
Jeśli dla MySQL/MariaDB włączone jest logowanie binarne, wymaga to uprawnień superużytkownika lub ustawienia zmiennej/parametru konfiguracyjnego log_bin_trust_function_creators = 1.
Instrukcje dotyczące ustawienia tej zmiennej znajdują się w sekcji Skrypty tworzenia bazy danych.
Należy pamiętać, że w przypadku wykonania z konsoli zmienna zostanie ustawiona tylko tymczasowo i zostanie usunięta po ponownym uruchomieniu Dockera.
W takim przypadku należy pozostawić usługę SQL uruchomioną, zatrzymać tylko usługę zabbix-server, uruchamiają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 8.0 może zająć dużo czasu.
Aktualizacja obrazu komponentu Zabbix
Te instrukcje aktualizują obrazy Docker używane jako baza dla kontenerów komponentów Zabbix.
Poniższe kroki wykorzystują jako przykład proxy Zabbix.
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.4-latest (...) zabbix-proxy-sqlite3
2. Pobierz nową wersję obrazu:
docker pull zabbix/zabbix-proxy-sqlite3:alpine-8.0-latest
3. Zatrzymaj kontener komponentu Zabbix:
docker stop zabbix-proxy-sqlite3
4. Usuń kontener komponentu Zabbix:
Przed kontynuowaniem upewnij się, że zanotowano wszystkie flagi konfiguracyjne i montowania woluminów użyte w oryginalnym poleceniu docker run, ponieważ będą one potrzebne do ponownego utworzenia kontenera.
docker rm zabbix-proxy-sqlite3
5. Uruchom nowy kontener przy użyciu zaktualizowanego obrazu:
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
Więcej informacji o uruchamianiu kontenerów Zabbix można znaleźć w Docker (wdrożenie ręczne).
6. Sprawdź, czy aktualizacja zakończyła się powodzeniem, sprawdzają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 Zabbix został zainstalowany 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.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. Przejdź do repozytorium Zabbix Docker, które zostało wcześniej sklonowane, pobierz najnowsze aktualizacje i przełącz się na gałąź 8.0:
Jeśli w lokalnym repozytorium zmodyfikowano pliki .env, compose.yaml lub inne pliki, polecenie git pull może je nadpisać.
Przed wykonaniem tego kroku utwórz kopię zapasową wszystkich lokalnych zmian.
cd zabbix-docker
git pull
git checkout 8.0
3. Wdróż komponenty Zabbix przy użyciu zaktualizowanego pliku Docker Compose:
# With MySQL as the database:
docker compose -f ./compose.yaml up -d
# With PostgreSQL as the database:
docker compose -f ./compose_pgsql.yaml up -d
Po ponownym utworzeniu i uruchomieniu wszystkich kontenerów wznowienie zbierania danych może potrwać od 1 do 3 minut. Więcej informacji o uruchamianiu kontenerów Zabbix można znaleźć 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