Обновление из контейнеров

Обзор

В этом разделе описаны шаги, необходимые для успешного обновления контейнеров 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

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