Обновление из контейнеров
Обзор
В этом разделе описаны шаги, необходимые для успешного обновления контейнеров Zabbix 8.0.x.
Доступны отдельные наборы инструкций для обновления образов отдельных компонентов Zabbix и Docker compose files.
Перед обновлением обязательно ознакомьтесь с соответствующими примечаниями к обновлению!
Перед началом обновления убедитесь, что у пользователей есть необходимые права доступа к базе данных для выполнения обновления.\
При обновлении с 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'.
В качестве альтернативы вы можете задать эту переменную в конфигурационном файле.
В зависимости от размера базы данных обновление до версии 8.0 может занять довольно много времени.
Обновление образа Zabbix
Приведенные ниже шаги можно использовать для обновления любого компонента Zabbix.
Замените zabbix-server-mysql на имя образа нужного компонента.
1. Проверьте текущую версию образа:
docker inspect -f '{{ .Config.Image }}' zabbix-server-mysql
2. Загрузите нужную версию образа, например:
docker pull zabbix/zabbix-server-mysql:alpine-8.0-latest
zabbix/zabbix-server-mysql:alpine-8.0-latest загрузит последнюю выпущенную минорную версию сервера Zabbix 8.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-8.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-8.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.4-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 8.0
3. Запустите компоненты Zabbix, используя новый файл compose:
docker-compose -f ./docker-compose_v3_alpine_mysql_latest.yaml up -d
4. Проверьте обновление:
docker logs -f zabbix-server-mysql
См. Установка из контейнеров для получения более подробной информации, включая списки поддерживаемых переменных окружения и точек монтирования томов.