3 Atualização a partir de containers

Visão geral

Esta seção descreve as etapas necessárias para uma atualização bem-sucedida para os contêineres do Zabbix 7.4.x.

Há conjuntos separados de instruções disponíveis para:

Antes da atualização, certifique-se de ler as notas de atualização relevantes!

Antes de iniciar a atualização, verifique se os usuários têm as permissões necessárias no banco de dados para fins de atualização.

Para atualizações a partir do Zabbix 6.0 ou anterior, triggers determinísticos precisarão ser criados durante a atualização. Se o log binário estiver habilitado para MySQL/MariaDB, isso requer privilégios de superusuário ou a definição da variável/parâmetro de configuração log_bin_trust_function_creators = 1. Consulte Scripts de criação do banco de dados para obter instruções sobre como definir a variável.

Observe que, se executada a partir de um console, a variável será definida apenas temporariamente e será removida quando um Docker for reiniciado. Nesse caso, mantenha seu serviço SQL em execução, interrompa apenas o serviço zabbix-server executando docker compose down zabbix-server e depois docker compose up -d zabbix-server.

Como alternativa, você pode definir essa variável no arquivo de configuração.

Dependendo do tamanho do banco de dados, a atualização do banco de dados para a versão 7.4 pode levar muito tempo.

Atualização da imagem do componente Zabbix

Estas instruções atualizam as imagens Docker usadas como base para os contêineres do seu componente Zabbix.

As etapas abaixo usam um proxy Zabbix como exemplo. Substitua zabbix-proxy-sqlite3 pelo nome do contêiner do seu componente.

1. Verifique todos os contêineres para identificar seus nomes e as versões atuais das imagens:

docker ps -a

# CONTAINER ID   IMAGE                                           (...) NAMES
# 5a0c2e3d02b4   zabbix/zabbix-proxy-sqlite3:alpine-7.2-latest   (...) zabbix-proxy-sqlite3

2. Baixe a nova versão da imagem:

docker pull zabbix/zabbix-proxy-sqlite3:alpine-7.4-latest

3. Pare o contêiner do componente Zabbix:

docker stop zabbix-proxy-sqlite3

4. Remova o contêiner do componente Zabbix:

Certifique-se de ter anotado todos os sinalizadores de configuração e montagens de volume usados no comando docker run original antes de prosseguir, pois eles serão necessários para recriar o contêiner.

docker rm zabbix-proxy-sqlite3

5. Inicie um novo contêiner usando a imagem atualizada:

docker run --name zabbix-proxy-sqlite3 \
  -e ZBX_SERVER_HOST=192.0.2.0 \
  -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

Para mais informações sobre como executar contêineres Zabbix, consulte Docker (implantação manual).

6. Verifique se a atualização foi bem-sucedida conferindo os logs do contêiner:

docker logs -f zabbix-proxy-sqlite3

Atualização do arquivo Docker Compose

Estas instruções atualizam os arquivos Docker Compose usados para implantar componentes do Zabbix. Siga estas instruções se você instalou o Zabbix usando Docker Compose.

1. Verifique todos os contêineres para identificar seus nomes e as versões atuais das imagens:

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. Navegue até o repositório Docker do Zabbix que você clonou anteriormente, obtenha as atualizações mais recentes e mude para a branch 7.4:

Se você modificou .env, compose.yaml ou outros arquivos no seu repositório local, um git pull poderá sobrescrevê-los. Faça backup de quaisquer alterações locais antes de executar esta etapa.

cd zabbix-docker
git pull
git checkout 7.4

3. Implante os componentes do Zabbix usando o arquivo Docker Compose atualizado:

# Com MySQL como banco de dados:
docker compose -f ./compose.yaml up -d

# Com PostgreSQL como banco de dados:
docker compose -f ./compose_pgsql.yaml up -d

Depois que todos os contêineres forem recriados e iniciados, pode levar de 1 a 3 minutos até que a coleta de dados seja retomada. Para mais informações sobre a execução de contêineres do Zabbix, consulte Docker Compose.

4. Verifique se a atualização foi bem-sucedida conferindo os logs do contêiner (substitua zabbix-docker-zabbix-server-1 pelo nome do contêiner do seu componente):

docker logs -f zabbix-docker-zabbix-server-1