3. Обновление из контейнеров
Обзор
В этом разделе описаны шаги, необходимые для успешного обновления контейнеров Zabbix до версии 7.4.x.
Отдельные наборы инструкций доступны для:
Перед обновлением обязательно ознакомьтесь с соответствующими примечаниями к обновлению!
Перед началом обновления убедитесь, что у пользователей есть необходимые права доступа к базе данных для выполнения обновления.
При обновлении с Zabbix 6.0 или более ранней версии во время обновления потребуется создать детерминированные триггеры.
Если для MySQL/MariaDB включено бинарное журналирование, для этого требуются привилегии суперпользователя или установка переменной/параметра конфигурации log_bin_trust_function_creators = 1.
См. Скрипты создания базы данных для инструкций по настройке этой переменной.
Обратите внимание, что при выполнении из консоли переменная будет установлена только временно и будет сброшена при перезапуске Docker.
В этом случае оставьте службу SQL запущенной, остановите только службу zabbix-server, выполнив docker compose down zabbix-server, а затем docker compose up -d zabbix-server.
В качестве альтернативы вы можете задать эту переменную в файле конфигурации.
В зависимости от размера базы данных обновление базы данных до версии 7.4 может занять много времени.
Обновление образа компонента Zabbix
Эти инструкции позволяют обновить образы Docker, которые используются в качестве основы для контейнеров компонентов Zabbix.
В приведенных ниже шагах в качестве примера используется прокси Zabbix.
Замените zabbix-proxy-sqlite3 на имя контейнера вашего компонента.
1. Проверьте все контейнеры, чтобы определить их имена и текущие версии образов:
docker ps -a
# CONTAINER ID IMAGE (...) NAMES
# 5a0c2e3d02b4 zabbix/zabbix-proxy-sqlite3:alpine-7.2-latest (...) zabbix-proxy-sqlite3
2. Загрузите новую версию образа:
docker pull zabbix/zabbix-proxy-sqlite3:alpine-7.4-latest
3. Остановите контейнер компонента Zabbix:
docker stop zabbix-proxy-sqlite3
4. Удалите контейнер компонента Zabbix:
Перед продолжением убедитесь, что вы записали все флаги конфигурации и точки монтирования томов, использованные в исходной команде docker run, так как они понадобятся для повторного создания контейнера.
docker rm zabbix-proxy-sqlite3
5. Запустите новый контейнер, используя обновленный образ:
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
Дополнительные сведения о запуске контейнеров Zabbix см. в разделе Docker (ручное развертывание).
6. Убедитесь, что обновление прошло успешно, проверив журналы контейнера:
docker logs -f zabbix-proxy-sqlite3
Обновление файла Docker Compose
Эти инструкции позволяют обновить файлы Docker Compose, используемые для развертывания компонентов Zabbix. Следуйте этим инструкциям, если вы установили Zabbix с помощью Docker Compose.
1. Проверьте все контейнеры, чтобы определить их имена и текущие версии образов:
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. Перейдите в ранее клонированный репозиторий Zabbix Docker, получите последние обновления и переключитесь на ветку 7.4:
Если вы изменяли .env, compose.yaml или другие файлы в локальном репозитории, команда git pull может перезаписать их.
Сделайте резервную копию всех локальных изменений перед выполнением этого шага.
cd zabbix-docker
git pull
git checkout 7.4
3. Разверните компоненты Zabbix, используя обновленный файл Docker Compose:
# С MySQL в качестве базы данных:
docker compose -f ./compose.yaml up -d
# С PostgreSQL в качестве базы данных:
docker compose -f ./compose_pgsql.yaml up -d
После того как все контейнеры будут пересозданы и запущены, возобновление сбора данных может занять 1—3 минуты. Дополнительные сведения о запуске контейнеров Zabbix см. в разделе Docker Compose.
4. Убедитесь, что обновление прошло успешно, проверив журналы контейнера (замените zabbix-docker-zabbix-server-1 на имя контейнера вашего компонента):
docker logs -f zabbix-docker-zabbix-server-1