3. Обновление из контейнеров
Обзор
В этом разделе описываются шаги, необходимые для успешного обновления контейнеров до Zabbix 7.0.x.
Доступны отдельные наборы инструкций для обновления отдельных образов компонентов Zabbix и файлов compose для Docker.
Перед обновлением обязательно прочтите соответствующие заметки об обновлении!
Перед началом обновления убедитесь, что у пользователей есть необходимые для обновления права доступа к базе данных.\
Для обновлений с 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.0 может занять довольно много времени.
Обновление образов Zabbix
Шаги, перечисленные ниже, можно использовать для обновления любого компонента Zabbix.
Замените zabbix-server-mysql на требуемое имя образа компонента.
1. Проверьте текущую версию образа:
docker inspect -f '{{ .Config.Image }}' zabbix-server-mysql
2. Получите нужную версию образа, например:
docker pull zabbix/zabbix-server-mysql:alpine-7.0-latest
zabbix/zabbix-server-mysql:alpine-7.0-latest получит последнюю выпущенную минорную версию Zabbix сервера 7.0 с поддержкой MySQL на основе Alpine Linux.
Замените это на нужные вам имя репозитория Docker и комбинации тегов.
Смотрите Установка из контейнеров для списка доступных опций.
3. Остановите контейнер:
docker stop zabbix-server-mysql
4. Удалите контейнер:
docker rm zabbix-server-mysql
5. Запустите обновлённый контейнер, выполнив команду docker run, за которой следуют дополнительные аргументы для указания требуемых переменных окружения и/или точек монтирования.
Примеры конфигурации
Zabbix сервер с MySQL:
docker run --name zabbix-server-mysql -t \
-e DB_SERVER_HOST="mysql-server" \
-e MYSQL_DATABASE="zabbix" \
-e MYSQL_USER="zabbix" \
-e MYSQL_PASSWORD="zabbix_pwd" \
-e MYSQL_ROOT_PASSWORD="root_pwd" \
-e ZBX_JAVAGATEWAY="zabbix-java-gateway" \
--network=zabbix-net \
-p 10051:10051 \
--restart unless-stopped \
-d zabbix/zabbix-server-mysql:alpine-7.0-latest
Zabbix сервер с PostgreSQL:
docker run --name zabbix-server-pgsql -t \
-e DB_SERVER_HOST="postgres-server" \
-e POSTGRES_USER="zabbix" \
-e POSTGRES_PASSWORD="zabbix_pwd" \
-e POSTGRES_DB="zabbix" \
-e ZBX_ENABLE_SNMP_TRAPS="true" \
--network=zabbix-net \
-p 10051:10051 \
--volumes-from zabbix-snmptraps \
--restart unless-stopped \
-d zabbix/zabbix-server-pgsql:alpine-7.0-latest
Сервер MySQL:
docker run --name mysql-server -t \
-e MYSQL_DATABASE="zabbix" \
-e MYSQL_USER="zabbix" \
-e MYSQL_PASSWORD="zabbix_pwd" \
-e MYSQL_ROOT_PASSWORD="root_pwd" \
--network=zabbix-net \
--restart unless-stopped \
-d mysql:8.0-oracle \
--character-set-server=utf8mb4--collation-server=utf8mb4_bin \
Больше примеров конфигурации, включая примеры для других компонентов Zabbix, доступны на странице Установка из контейнеров.
6. Проверьте обновление:
docker logs -f zabbix-server-mysql
Файлы Compose
Следуйте инструкциям по обновлению в этом разделе, если вы установили Zabbix, используя файл Compose.
1. Проверьте текущую версию образа:
docker inspect -f '{{ .Config.Image }}' zabbix-server-mysql
2. Загрузите последние обновления из репозитория GitHub и переключитесь на нужную ветку:
git pull
git checkout 7.0
3. Запустите компоненты Zabbix с помощью нового файла Compose:
docker-compose -f ./docker-compose_v3_alpine_mysql_latest.yaml up -d
4. Проверьте обновление:
docker logs -f zabbix-server-mysql
Смотрите Установка из контейнеров для получения более подробной информации, включая списки поддерживаемых переменных среды и точек монтирования томов.