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

Больше примеров конфигурации, включая примеры для других компонентов 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

Смотрите Установка из контейнеров для получения более подробной информации, включая списки поддерживаемых переменных среды и точек монтирования томов.