Instalando o Zabbix via Docker

Atualizado em: 06 de abril de 2023

Neste repositório do GitHub tem várias informações sobre o uso das imagens oficiais do Zabbix no Docker.

As instruções oficiais para instalação do Zabbix com Docker estão disponíveis em: https://www.zabbix.com/documentation/current/en/manual/installation/containers

Se você não sabe o que é Docker, recomendo começar lendo os links abaixo. Vale a pena conhecer essa tecnologia.

http://blog.aeciopires.com/palestra-transportando-as-aplicacoes-entre-varios-ambientes-com-docker/
http://blog.aeciopires.com/primeiros-passos-com-docker/

Também realizo curso de Docker: http://blog.aeciopires.com/curso-docker


Neste tutorial, será mostrado como executar o Zabbix usando conteineres Docker, o que deixa a instalação bem simples e rápida. Será mostrado como iniciar os conteineres Zabbix e MySQL persistindo os dados.

0) Instale o Docker seguindo um dos tutoriais abaixo.

1) Crie um diretório para persistir os dados do MySQL, Mibs e SNMP Traps.

sudo mkdir -p /docker/zabbix/mysql/data \
 /docker/zabbix/snmptraps \
 /docker/zabbix/mibs

Atenção: O volume permite adicionar novos arquivos de MIB (Management Information Bases). Esse volume não suporta subdiretórios, todos os arquivos de MIBs devem ser colocados em /docker/zabbix/mibs. Fonte: https://www.zabbix.com/documentation/current/en/manual/installation/containers

2) OPCIONAL – Crie o diretório de certificado para uso do Zabbix via HTTPS (isso é recomendado por questões de segurança).

sudo mkdir -p /docker/zabbix/ssl

Depois disso, copie o arquivo do certificado, da autoridade certificadora chave pública e privada para esse diretório.

3) Baixe as imagens Docker de alguns componentes do Zabbix. Altere os valores conforme as necessidades do seu ambiente.

ZABBIX_VERSION=ubuntu-6.4-latest

docker pull mysql:8
docker pull zabbix/zabbix-agent:${ZABBIX_VERSION}
docker pull zabbix/zabbix-proxy-sqlite3:${ZABBIX_VERSION}
docker pull zabbix/zabbix-server-mysql:${ZABBIX_VERSION}
docker pull zabbix/zabbix-web-nginx-mysql:${ZABBIX_VERSION}
docker pull zabbix/zabbix-snmptraps:${ZABBIX_VERSION}

4) Crie um rede virtual no Docker dedicada aos componentes do Zabbix. Altere os valores conforme as necessidades do seu ambiente.

ZABBIX_SUBNET="172.20.0.0/16"
ZABBIX_IP_RANGE="172.20.240.0/20"

docker network create --subnet ${ZABBIX_SUBNET} --ip-range ${ZABBIX_IP_RANGE} zabbix-net

docker network inspect zabbix-net

5) Inicie o conteiner docker do MySQL criando o banco de dados para o Zabbix. Altere os valores conforme as necessidades do seu ambiente.

docker run -d --name zabbix-mysql \
 --restart always \
 -p 3306:3306 \
 -v /docker/zabbix/mysql/data:/var/lib/mysql \
 -e MYSQL_ROOT_PASSWORD=secret \
 -e MYSQL_DATABASE=zabbix \
 -e MYSQL_USER=zabbix \
 -e MYSQL_PASSWORD=zabbix \
 --network=zabbix-net \
 mysql:8 \
 --default-authentication-plugin=mysql_native_password \
 --character-set-server=utf8 \
 --collation-server=utf8_bin

Para ver o log, use o seguinte comando.

docker logs -f zabbix-mysql

6) Inicie o conteiner docker do Zabbix SNMP Trap. Altere os valores conforme as necessidades do seu ambiente.

docker run -d --name zabbix-snmptraps -t \
 --restart always \
 -p 162:1162/udp \
 -v /docker/zabbix/snmptraps:/var/lib/zabbix/snmptraps:rw \
 -v /docker/zabbix/mibs:/usr/share/snmp/mibs:ro \
 --network=zabbix-net \
 zabbix/zabbix-snmptraps:${ZABBIX_VERSION}

Para ver o log, use o seguinte comando.

docker logs -f zabbix-snmptraps

7) Inicie o conteiner docker do Zabbix-Server. Altere os valores conforme as necessidades do seu ambiente.

docker run -d --name zabbix-server \
 --restart always \
 -p 10051:10051 \
 -e DB_SERVER_HOST="zabbix-mysql" \
 -e DB_SERVER_PORT="3306" \
 -e MYSQL_ROOT_PASSWORD="secret" \
 -e MYSQL_DATABASE="zabbix" \
 -e MYSQL_USER="zabbix" \
 -e MYSQL_PASSWORD="zabbix" \
 -e ZBX_ENABLE_SNMP_TRAPS="true" \
 --network=zabbix-net \
 --volumes-from zabbix-snmptraps \
 zabbix/zabbix-server-mysql:${ZABBIX_VERSION}

Para ver o log, use o seguinte comando.

docker logs -f zabbix-server

8) Inicie o conteiner Zabbix-Web SEM HTTPS. Altere os valores conforme as necessidades do seu ambiente.

docker run -d --name zabbix-web \
 --restart always \
 -p 80:8080 \
 -e ZBX_SERVER_HOST="zabbix-server" \
 -e DB_SERVER_HOST="zabbix-mysql" \
 -e DB_SERVER_PORT="3306" \
 -e MYSQL_ROOT_PASSWORD="secret" \
 -e MYSQL_DATABASE="zabbix" \
 -e MYSQL_USER="zabbix" \
 -e MYSQL_PASSWORD="zabbix" \
 -e PHP_TZ="America/Sao_Paulo" \
 --network=zabbix-net \
 zabbix/zabbix-web-nginx-mysql:${ZABBIX_VERSION}

Ou inicie o conteiner docker do Zabbix-Web COM HTTPS acessando o banco de dados criado no MySQL e o conteiner Zabbix-Server. Altere os valores conforme as necessidades do seu ambiente.

OBS.: No fim deste tutorial, tem a seção EXTRA: Criando um certificado auto-assinado para uso com o Nginx, que pode ser utilizada como exemplo para configurar o uso do Nginx com HTTPS.

docker run -d --name zabbix-web \
 --restart always \
 -p 80:8080 -p 443:8443 \
 -v /docker/zabbix/ssl/ssl.crt:/etc/ssl/nginx/ssl.crt \
 -v /docker/zabbix/ssl/ssl.key:/etc/ssl/nginx/ssl.key \
 -v /docker/zabbix/ssl/dhparam.pem:/etc/ssl/nginx/dhparam.pem \
 -e ZBX_SERVER_HOST="zabbix-server" \
 -e DB_SERVER_HOST="zabbix-mysql" \
 -e DB_SERVER_PORT="3306" \
 -e MYSQL_ROOT_PASSWORD="secret" \
 -e MYSQL_DATABASE="zabbix" \
 -e MYSQL_USER="zabbix" \
 -e MYSQL_PASSWORD="zabbix" \
 -e PHP_TZ="America/Sao_Paulo" \
 --network=zabbix-net \
 zabbix/zabbix-web-nginx-mysql:${ZABBIX_VERSION}

Para ver o log, use o seguinte comando.

docker logs -f zabbix-web

9) Inicie o conteiner docker do Zabbix-Agent. Altere os valores conforme as necessidades do seu ambiente.

docker run -d --name zabbix-agent \
 --hostname "$(hostname)" \
 --privileged \
 -v /:/rootfs \
 -v /var/run:/var/run \
 --restart always \
 -p 10050:10050 \
 -e ZBX_HOSTNAME="$(hostname)" \
 -e ZBX_SERVER_HOST="172.17.0.1" \
 -e ZBX_PASSIVESERVERS="${ZABBIX_IP_RANGE}" \
 zabbix/zabbix-agent:${ZABBIX_VERSION}

Para ver o log, use o seguinte comando.

docker logs -f zabbix-agent

10) OPCIONAL – Inicie o conteiner docker do Zabbix-Proxy. Altere os valores conforme as necessidades do seu ambiente.

docker run -d --name zabbix-proxy \
 --restart always \
 -p 10053:10050 \
 -e ZBX_HOSTNAME="$(hostname)" \
 -e ZBX_SERVER_HOST="zabbix-server" \
 -e ZBX_ENABLE_SNMP_TRAPS="true" \
 --network=zabbix-net \
 --volumes-from zabbix-snmptraps \
 zabbix/zabbix-proxy-sqlite3:${ZABBIX_VERSION}

Para ver o log, use o seguinte comando.

docker logs -f zabbix-proxy

11) Acesse o Zabbix na URL http://IP-Servidor (com HTTP) ou https://IP-Servidor (com HTTPS). O login é Admin e a senha padrão é zabbix.

Lembre-se de cadastrar o Zabbix Proxy e o Host com o Zabbix Agent instalado.

12) Se quiser parar o conteiner, é só executar o seguinte comando.

docker stop nome-conteiner

13) Para iniciá-lo novamente, execute o seguinte comando.

docker start nome-conteiner

14) Para remover um conteiner, use os seguintes comandos.

docker stop nome-conteiner
docker rm nome-conteiner

15) Para obter mais informações sobre o Zabbix, sobre as imagens docker e como customizar parâmetros de configuração, acesse os links abaixo.

https://scaron.info/blog/improve-your-nginx-ssl-configuration.html

http://zabbixbrasil.org/?page_id=7

https://blog.zabbix.com/zabbix-docker-containers/7150/

https://www.youtube.com/watch?v=ScKlF0ICVYA

https://www.zabbix.com/documentation/current/manual/installation/containers

16) OPCIONAL – Se precisar fazer o dump de todos os bancos de dados do conteiner MySQL criado anteriormente, use o comando abaixo. Altere os dados em negrito e em vermelho conforme as necessidades do seu ambiente. Lembrando que os dados do banco são persistidos no diretório /docker/zabbix/mysql/data do Docker Host no qual o conteiner está sendo executado.

docker exec zabbix-mysql sh -c 'exec mysqldump zabbix -uroot -p"MYSQL_ROOT_PASSWORD"' > /home/zabbix.sql

17- OPCIONAL – Se precisar restaurar o dump, siga os passos abaixo.

Remova o banco antigo e crie-o novamente.

docker exec -i -t zabbix-mysql /bin/bash

root@4f39b60a2dde:/# mysql -u root -p
Enter password: 

mysql> drop database zabbix;
mysql> create database zabbix;
mysql> quit

root@4f39b60a2dde:/# exit

Restaure o dump no banco novo. Altere os valores conforme as necessidades do seu ambiente.

docker stop zabbix-web
docker stop zabbix-server

docker exec -i zabbix-mysql /usr/bin/mysql -uroot -pMYSQL_ROOT_PASSWORD --database=zabbix < /home/zabbix.sql

docker start zabbix-server
docker start zabbix-web

Ou:

docker stop zabbix-web
docker stop zabbix-server

cat /home/zabbix.sql | docker exec zabbix-mysql sh -c 'exec /usr/bin/mysql -u root --password="MYSQL_ROOT_PASSWORD" zabbix'

docker start zabbix-server
docker start zabbix-web

EXTRA: Criando um certificado auto-assinado para uso com o Nginx

Instale o pacote opensssl.

No Debian/Ubuntu:

sudo apt-get -y install openssl

No CentOS:

sudo yum install -y openssl

Agora crie uma chave privada RSA. Execute os comandos abaixo. Será necessário definir uma senha para a chave privada.

sudo mkdir -p /docker/zabbix/ssl
cd /docker/zabbix/ssl
sudo openssl genrsa -aes256 -out ssl.key 4096

sudo cp ssl.key ssl.key.org
sudo openssl rsa -in ssl.key.org -out ssl.key

sudo chmod 755 ssl.key
sudo rm ssl.key.org

Agora crie uma requisição de assinatura de certificado com validade para 1000 anos (ou 365000 dias). Execute o comando abaixo.

openssl req -new -sha256 -days 365000 -key ssl.key -out ssl.csr

Durante a execução do comando acima será solicitado a senha da chave privada e os dados do certificado e que serão exibidos no navegador do usuário. Veja o exemplo abaixo.

  • Country Name (2 letter code) [GB]:BR
  • State or Province Name (full name) [Berkshire]:Estado
  • Locality Name (eg, city) [Newbury]:Cidade
  • Organization Name (eg, company) [My Company Ltd]: Minha empresa LTDA
  • Organizational Unit Name (eg, section) []:Meu setor de trabalho
  • Common Name (eg, your name or your server’s hostname) []:nomeservidor.empresa.com.br
  • Email Address []:email@empresa.com.br
  • Please enter the following ‘extra’ attributes
  • to be sent with your certificate request
  • A challenge password []: (deixe vazia, apertando ENTER)
  • An optional company name []: (deixe vazia, apertando ENTER)

Agora assine o certificado.

sudo openssl x509 -req -days 3650 -sha256 -in ssl.csr -signkey ssl.key -out ssl.crt

Usando, o comando acima, você estará assinando o certificado com validade de 1000 anos (aproximadamente 365000 dias). Se quiser mudar este tempo, altere a quantidade de dias no parâmetro -days.

Agora crie um par de chaves Diffie-Hellman com o seguinte comando:

sudo openssl dhparam -out dhparam.pem 4096

82 comentários em “Instalando o Zabbix via Docker

  • Depois de instalado o zabbix não está monitorando o server.

    Get value from agent failed: cannot connect to [[127.0.0.1]:10050]: [111] Connection refused

    como posso resolver ?

  • Bom dia, Bruno!

    Provavelmente, este erro está ocorrendo porque você está utilizando o endereço 127.0.0.1 para que o contêiner do zabbix-agent acesse o contêiner do zabbix-server (onde ambos estão sendo executados no mesmo servidor físico/virtual).

    Se este for o seu caso, troque o 127.0.0.1 pelo IP 172.17.0.1 (IP da interface docker0 criado automaticamente pelo Docker no servidor que executa os contêineres ou troque por outro IP que aparece na interface de rede do servidor físico/virtual). Dessa forma um contêiner tentará se comunicar com outro usando a interface de rede do servidor físico/virtual.

    Do ponto de vista do contêiner, se você usar 127.0.0.1, ele tentará acessar usando a interface localhost do próprio contêiner e não do servidor físico/virtual que executa os contêineres. Isso geralmente causa confusão quando estamos trabalhando com contêineres.

    Abraço.

  • Fiz isso e agora está com outro erro.

    Received empty response from Zabbix Agent at [172.17.0.1]. Assuming that agent dropped connection because of access permissions

  • Aécio, não estou conseguindo monitorar o zabbix via agent, baseado nas informações que adicionei abaixo, consegue me dizer o que pode ser ?

    docker run -d –name zabbix-agent \
    –net=host \
    –hostname “$(hostname)” \
    –privileged \
    -v /:/rootfs \
    -v /var/run:/var/run \
    –restart always \
    -p 10050:10050 \
    -e ZBX_HOSTNAME=”$(hostname)” \
    -e ZBX_SERVER_HOST=”192.168.31.78″ \
    zabbix/zabbix-agent:centos-$VERSAO_ZABBIX-latest

    [root@zabbix_frontend_srv01 ~]# docker ps
    CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
    71dd8a0c690b zabbix/zabbix-agent:centos-5.0-latest “/sbin/tini — /usr/…” 6 minutes ago Up 2 minutes zabbix-agent
    5bf997930c3c zabbix/zabbix-web-apache-mysql:centos-5.0-latest “docker-entrypoint.sh” About an hour ago Up 2 minutes 8443/tcp, 0.0.0.0:80->8080/tcp zabbix-web
    14062eaf6e85 zabbix/zabbix-server-mysql:centos-5.0-latest “/sbin/tini — /usr/…” 2 hours ago Up 2 minutes 0.0.0.0:10051->10051/tcp zabbix-server

    Starting Zabbix Agent [zabbix_frontend_srv01]. Zabbix 5.0.9 (revision 4d07aaa).
    Press Ctrl+C to exit.

    7:20210323:182908.938 Starting Zabbix Agent [zabbix_frontend_srv01]. Zabbix 5.0.9 (revision 4d07aaa).
    7:20210323:182908.954 **** Enabled features ****
    7:20210323:182908.954 IPv6 support: YES
    7:20210323:182908.954 TLS support: YES
    7:20210323:182908.954 **************************
    7:20210323:182908.955 using configuration file: /etc/zabbix/zabbix_agentd.conf
    7:20210323:182908.957 agent #0 started [main process]
    74:20210323:182908.959 agent #1 started [collector]
    75:20210323:182908.961 agent #2 started [listener #1]
    76:20210323:182908.973 agent #3 started [listener #2]
    77:20210323:182908.977 agent #4 started [listener #3]
    78:20210323:182908.984 agent #5 started [active checks #1]
    78:20210323:182909.553 active check configuration update from [192.168.31.78:10051] started to fail (cannot connect to [[192.168.31.78]:10051]: [111] Connection refused)
    78:20210323:183009.625 active check configuration update from [192.168.31.78:10051] is working again
    78:20210323:183009.625 no active checks on server [192.168.31.78:10051]: host [zabbix_frontend_srv01] not found

  • Oi, Edgar!

    Você cadastrou na interface web do zabbix o host zabbix_frontend_srv01 com o IP 192.168.31.78?

    Outro detalhe é que talvez o contêiner esteja enviando a requisição ao Zabbix usando outro IP de interface de rede, por exemplo o IP do contêiner.
    Vocẽ consegue pegar o IP do conteiner do zabbix-agent com o seguinte comando:

    docker inspect -f '{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}' CONTAINER_NAME-OR-ID_CONTAINER

    Em todo caso, se o problema for esse, o IP do contêiner é dinâmico, muda toda vez que você recriá-lo e por isso não adianta cadastrar um host com este IP na interface web do Zabbix.

    Uma alternativa é instalar no host do server o agente da forma tradicional mesmo ou pedir ajudar na comunidade Zabbix-BR em um dos canais citados na página: http://zabbixbrasil.org/?page_id=2151

    Abraço.

  • Aecio, ótimo conteúdo!

    Mas gostaria de tirar algumas dúvidas

    Você tem zabbix instalado dentro de containers docker?

    Quando precisa fazer alguma alteração no arquivo de configuração, como faz?

    poderia me esclarecer?

    obrigado pela atenção

  • Olá, Jonas!

    Muito obrigado!

    Todos (ou a maioria) dos parâmetros de configuração do Zabbix podem ser definidos através de variáveis de ambiente e informados ao container utilizando a opção -e.
    Exemplo: -e MYSQL_HOST=172.17.0.1

    Na página das imagens Docker do Zabbix tem uma documentação explicando quais as variáveis de ambiente disponíveis e pelo nome você consegue fazer uma correção com cada parâmetro de fica dentro do zabbix_server.conf ou zabbix_agentd.conf

    Exemplo: olha a documentação deste componente:
    https://hub.docker.com/r/zabbix/zabbix-server-mysql

    Todas as imagens Docker dos componentes do Zabbix estão disponíveis em:
    https://hub.docker.com/u/zabbix

    Nestas mesmas documentações também são informados alguns diretórios dentro dos containers nos quais você pode utilizar no mapeamento de um volume Docker para o host que executa o container com a opção -v.
    Exemplo:
    -v /docker/mysql/zabbix/data:/var/lib/mysql

    Onde:
    /docker/mysql/zabbix/data => é o diretório do host (que executa o container) onde os dados serão persitidos mesmo quando o container for removido. Você deve criar esse diretório caso não exista. O local também pode ser mudado de acordo com a sua necessidade.
    /var/lib/mysql => é o diretório dentro do container no qual a aplicação salva os dados. Você não tem controle sobre esse diretório. É lendo a documentação da imagem Docker ou vendo o código fonte do Dockerfile usado na compilação da imagem Docker que você descobre em qual diretório a aplicação salva os dados dentro do container.

    Assim você pode usar essa técnica para compartilhar scripts, binários e arquivos de configuração com a aplicação Zabbix que executa dentro do container.

    Para saber mais sobre volume Docker, veja:

    https://docs.docker.com/storage/volumes/
    https://www.alura.com.br/artigos/criando-volumes-com-docker
    https://www.youtube.com/watch?v=StQYXkFgeeA
    https://stack.desenvolvedor.expert/appendix/docker/armazenamento.html
    https://www.digitalocean.com/community/tutorials/how-to-share-data-between-the-docker-container-and-the-host
    https://escoladaprogramacao.com.br/diferencas-entre-volume-e-bind-mount-no-docker/
    https://imasters.com.br/devsecops/montando-volumes-no-docker
    https://www.vivaolinux.com.br/artigo/Montando-Volumes-no-Docker

  • Obrigado Aecio, ficou muito claro.

    Posso levantar outro container e referenciar ele aquele volume de antes que não perco nenhuma informação que já existia é isso?

    Obrigado pela grande ajuda!

    Abraço!

  • Olá. Boa tarde!

    Após seguir o tutorial quando eu entro no Web do Zabbix aparece a mensagem “Unable to determine current Zabbix database version: the table “dbversion” was not found.”

    Alguém pode me ajudar?

  • Olá, Raul!

    Eu acho que houve algum problema na criação do banco de dados via MySQL, ou foi passado algum parâmetro errado na hora de subir os containers do Zabbix.

    Eu sugiro refazer os passos do tutorial com calma.

    Outra coisa a ser observada são os parâmetros a seguir na hora de criar o banco no MySQL 8:

    –character-set-server=utf8
    –collation-server=utf8_bin

    Abraço e bom 2022 para vocẽ e sua família.

  • Bom dia Aécio, tudo bem?

    Esta idéia de disponibilizar o Zabbix via docker é muito interessante, logo, fui testar esta solução aqui no VirtualBox, com Ubuntu Server 20.04, porém, embora o Zabbix tenha subido com sucesso, não consegui, de nenhuma forma, fazer o agente funcionar. Tentei com vários endereços diferentes no ZBX_SERVER_HOST. seja o IP da VM, do container, tentei instalar o agente direto na VM (sem ser via docker, configurando os campos Server, ServerActive e Hostname de acordo) mas sempre aparece o mesmo erro: [111] Connection refused. Tentei inclusive desabilitar o firewall o SELinux mas o erro permanece.

    Há algo mais que eu poderia fazer?

  • Bom dia, Lucas!

    Eu atualizei novamente o conteúdo do tutorial e testei o passo a passo.
    Sugiro instalar do zero seguindo o novo passo a passo.

    Com relação ao zabbix-agent, o problema acontece porque os container do zabbix-agent e zabbix-server interagem entre si utilizando o IP privado de cada container, que é gerado dinamicamente quando cada conteiner é criado. Eu olhei as configurações do zabbix-server e zabbix-agent e não identifiquei facilmente uma solução de contorno.

    Eu sugiro buscar ajuda nos fóruns oficiais das comunidades Zabbix-BR e Zabbix Internacional.

    http://www.zabbixbrasil.org/encontre-ajuda/

    https://www.zabbix.com/forum/

    Abraço.

  • Boa noite amigo, to com uma duvida, o que devo colocar no server de um host linux que quero monitora? esse agent foi instalado via rpm no host
    ele fica fora da vm do docker com os container.

  • Primero, obrigado pelo tutorial, ajudou muito.
    adicionem essa linha
    -e ZBX_PASSIVESERVERS=”172.20.240.0/24″ \
    nos comandos para subir o container zabbix-agent. Vai ficar assim:

    docker run -d –name zabbix-agent \
    –net=host \
    –hostname “$(hostname)” \
    –privileged \
    -v /:/rootfs \
    -v /var/run:/var/run \
    –restart always \
    -p 10050:10050 \
    -e ZBX_HOSTNAME=”$(hostname)” \
    -e ZBX_SERVER_HOST=”172.17.0.1″ \
    -e ZBX_PASSIVESERVERS=”172.20.240.0/24″ \
    zabbix/zabbix-agent:${ZABBIX_VERSION}

  • Olá, Cleber!

    Apenas para entender… essa rede 172.20.240.0/24 é referente a que? Pergunto isso porque nos computadores de outras pessoas pode não ter essa rede. Gostaria de entender o motivo para ver se tem algum comando que possa obter esse endereço de rede automaticamente de acordo com a configuração de cada computador.

    Abraço.

  • No tutorial no item 4 é criado essa rede
    ZABBIX_IP_RANGE=”172.20.240.0/20″
    essa linha se faz necessário para a devida comunicação.
    -e ZBX_PASSIVESERVERS=”172.20.240.0/24″ \

  • Obrigado pela explicação Cleber!

    Nem tinha me atentado que eu tinha adicionado isso no ponto 4.
    Eu adicionei o parâmetro, mas apontando para o valor da variável para ficar mais dinâmico de alterar quando necessário.

    Abraço.

  • Olá!

    Ótimo tutorial, só gostaria de adicionar uma informação, na linha para executar o container do zabbix-agent comigo só deu certo quando removi o parâmetro –net=host, quando executava com este parâmetro o container não pegava IP, ao remover pegou o IP 172.17.0.2 e a monitoração ocorreu normalmente.

    Muito obrigado.

  • Boa tarde amigo, muito bom o tutorial, muito bem detalhado, ve se consegue me ajudar, estou enfrentando esse erro
    Database error
    The Zabbix database version does not match current requirements. Your database version: 6010048. Required version: 6020000. Please contact your system administrator.

  • Uma duvida, notei que você ao final dos volumes coloca “rw, ro”… Vc poderia me responder o que isso faz?
    Se possível, e se não for muito trabalhoso para o Sr. me enviar uma documentação explicando esses parâmetros…

    Eu procurei no google e não consegui encontrar nada.
    Ex.

    -v /docker/zabbix/snmptraps:/var/lib/zabbix/snmptraps:rw \
    -v /docker/zabbix/mibs:/usr/share/snmp/mibs:ro \

    Esses dois caras vc colocou esses valores no final – Pra que serve?
    Obrigado!

  • Olá, Raul!

    O ‘ro’ significa (read only), o volume será montado apenas com a permissão de leitura, ou seja, não haverá nenhuma permissão para alterar ou criar arquivos no volume a ser montado no conteiner.
    O ‘rw’ significa (read write), o volume será montado com permissão de escrita, ou seja, é permitido criar ou alterar arquivos no volume a ser montado no conteiner.

    A escolha das opções dependem da necessidade do uso de cada volume.

    Para saber mais informações sobre essas e outras opções sobre o volume Docker, veja o seguinte link: https://docs.docker.com/storage/volumes/

  • Olá, Pedro!

    Esse erro acontece porque o seu banco dados está compatível com a versão 6.1 do Zabbix, mas você está tentando iniciar conteineres com a versão 6.2.
    O necessário nesse caso é tentar atualizar o banco de dados (importante fazer um backup antes).

    Eu não sei como ajudar nisso, pois depende muito das configurações do ambiente…mas sugiro pedir ajudar na comunidade Zabbix-BR https://www.zabbixbrasil.org/encontre-ajuda/

    Há também alguns outros tutoriais que tratam especificamente da atualização do banco de dados, mas nesses casos eles não estão usando Docker para iniciar o Zabbix.

    * https://www.zabbix.com/forum/zabbix-troubleshooting-and-problems/446124-unable-to-start-after-upgrade-the-zabbix-db-version-does-not-match-requirements
    * https://relatosti.com.br/2021/08/resolvendo-erro-the-server-does-not-match-zabbix-database-current-database-version-mandatory-optional/
    * https://bestmonitoringtools.com/upgrade-zabbix-to-the-latest-version/
    * https://www.youtube.com/watch?v=dvmLynvsxOI
    * https://programmerah.com/error-the-version-of-zabbix-database-does-not-match-the-current-requirements-36584/
    * https://everaldoscabral.blogspot.com/2020/08/sobre-o-zabbix-server-does-not-match.html
    * https://stackoverflow.com/questions/57249895/how-to-fix-database-error-the-frontend-does-not-match-zabbix-database
    * https://www.zabbix.com/documentation/current/en/manual/installation/upgrade/packages/debian_ubuntu
    * https://www.zabbix.com/forum/zabbix-help/450062-database-error-zabbix-database-version-does-not-match-current-requirements

  • Aécio, é possível acrescentar essa linha na
    -e ZBX_CACHESIZE=2G \
    no item 7?
    Com essa linha levamos o cachesize para 2 giga, asim não temos problemas com a msg: “please increase CacheSize configuration parameter”. Com isso, só fica faltando eu focar na parte de atualizar o banco do zabbix.

  • Alguém conseguiu utilizar o https no zabbix?
    minha aplicação teste com docker não funciona o https, retorno do erro ERR_CONNECTION_CLOSED

    docker run -d –name zabbix-web \
    –restart always \
    -p 80:8080 -p 443:8443 \
    -v /docker/zabbix/ssl/ssl.crt:/etc/ssl/nginx/ssl.crt \
    -v /docker/zabbix/ssl/ssl.key:/etc/ssl/nginx/ssl.key \
    -v /docker/zabbix/ssl/dhparam.pem:/etc/ssl/nginx/dhparam.pem \
    -e ZBX_SERVER_HOST=”172.17.0.1″ \
    -e DB_SERVER_HOST=”MEU IP DO BANCO” \
    -e DB_SERVER_PORT=”3306″ \
    -e MYSQL_ROOT_PASSWORD=”SENHA” \
    -e MYSQL_DATABASE=”zabbix” \
    -e MYSQL_USER=”root” \
    -e MYSQL_PASSWORD=”SENHA” \
    -e PHP_TZ=”America/Sao_Paulo” \
    zabbix/zabbix-web-nginx-mysql:ubuntu-6.2-latest

    Alguma ajuda?

  • Lucas eu também tive problemas com o HTTPS, mas eu fiz o seguinte criei o cerificado primeiro e depois subi o contaiener web e funcionou.

  • Lucas conseguir resolver o problema do Https? Diego não funcionou!
    podman run -d –name zabbix-web-nginx-mysql -t \
    –restart always \
    -v /podman/zabbix/ssl:/etc/ssl/nginx:ro \
    -v /podman/zabbix/ssl/ssl.crt:/etc/ssl/nginx/ssl.crt \
    -v /podman/zabbix/ssl/ssl.key:/etc/ssl/nginx/ssl.key \
    -v /podman/zabbix/ssl/dhparam.pem:/etc/ssl/nginx/dhparam.pem \
    -e ZBX_SERVER_HOST=”zabbix-server-mysql” \
    -e DB_SERVER_HOST=”mysql-server” \
    -e DB_SERVER_PORT=”3306″ \
    -e MYSQL_ROOT_PASSWORD=”root_pwd” \
    -e MYSQL_DATABASE=”zabbix” \
    -e MYSQL_USER=”zabbix” \
    -e MYSQL_PASSWORD=”zabbix_pwd” \
    -e PHP_TZ=”America/Sao_Paulo” \
    –pod=zabbix \
    –volumes-from zabbix-snmptraps \
    zabbix/zabbix-web-nginx-mysql:${ZABBIX_VERSION}

  • -v /docker/zabbix/snmptraps:/var/lib/zabbix/snmptraps:rw \
    -v /docker/zabbix/mibs:/usr/share/snmp/mibs:ro \

    Sobre os arquivos que devem estar contidos neste volumes, por favor, pode indicar onde devo obter estes arquivos?

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *