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