Primeiro é realizada a instalação dos componentes do Docker para ser possível executar o servidor Zabbix em container.
Executar o comando o seguinte comando para instalar o Docker,
apt install docker.io
apt update
Em seguida teremos que executar dois containers com os parametros necessários e com a aplicação do Zabbix server e Zabbix frontend para configuração e acesso na web.
Executar o seguinte comando para que seja iniciada uma instância do Zabbix server.
docker run --name zabbix-server -p 10051:10051 -e DB_SERVER_HOST="192.168.1.92" -e MYSQL_USER="zabbix" -e MYSQL_PASSWORD="projetoateneu@zabbix" -d zabbix/zabbix-server-mysql:ubuntu-5.0.1
Atentar-se aos campos destacados em negrito. No lugar do IP que está em DB_SERVER_HOST, deve ficar o IP do servidor MySQL que realizamos a instalação anteriormente. O restante dos campos devem corresponder aos utilizados na instalação do servidor MySQL.
A seguir é o comando para a execução de um container contendo a parte da interface do Zabbix (frontend).
docker run --name zabbix-frontend --link zabbix-server:zabbix-server -p 80:8080 -p 443:8443 -e DB_SERVER_HOST="192.168.1.92" -e MYSQL_USER="zabbix" -e MYSQL_PASSWORD="projetoateneu@zabbix" -e PHP_TZ="America/Fortaleza" -d zabbix/zabbix-web-apache-mysql:ubuntu-5.0.1
Os campos destacados em negrito devem corresponder ao comando executado no passo 1. Em PHP_TZ ficará a sua região da zona de tempo que deseja que fique ajustado.
Para verificar se o procedimento deu certo, digite o seguinte comando para verificar os containers em execução.
docker ps -a
A coluna "STATUS" do container deve estar em "UP", contando também o tempo que está sendo executado o container.
O agente Zabbix servirá para coletar as informações do servidor que está sendo monitorado e enviar para o servidor que executa a instância principal do Zabbix server.
Atualizar os pacotes e criar uma pasta separada para por os arquivos que serão adquiridos
mkdir /downloads
cd /downloads
Executar o comando para obter o pacote do zabbix que contém o zabbix agent.
wget https://repo.zabbix.com/zabbix/5.2/ubuntu/pool/main/z/zabbix-release/zabbix-release_5.2-1+ubuntu20.04_all.deb
Extrair os arquivos do pacote Zabbix e instalar o agent.
dpkg -i zabbix-release_5.2-1+ubuntu20.04_all.deb
apt update
apt install zabbix-agent2
Para as proximas configurações, deve primeiro localizar o IP do container do servidor Zabbix na rede Docker.
docker network inspect bridge
Deve analisar qual IP de rede está atribuido ao container com nome "zabbix-server".
"Name": "zabbix-server",
"EndpointID": "2a06a1a8176dffaa5d39afb4d884a1995ba90a61d7390f9f8fd2f1f6b49cf500",
"MacAddress": "02:42:ac:11:00:02",
"IPv4Address": "172.17.0.2/16",
"IPv6Address": ""
No caso, o IP é este que está destacado em negrito.
Agora deve abrir o arquivo de configuração do zabbix agent.
vim /etc/zabbix/zabbix_agent2.conf
Digitar o seguinte após abrir o arquivo.
:set number
Apertar Enter para confirmar.
Isso deve mostrar o número de cada linha do arquivo, ficará mais fácil localizar onde devem ser feitas as alterações.
Na linha 455, deve tirar o # que está no começo da linha para que seja removida do modo comentário e a configuração leia a linha. A linha completa fica assim.
Plugins.Docker.Endpoint=unix:///var/run/docker.sock
Na linha 80.
Server=127.0.0.1
Deve trocar o número após o símbolo de igual pelo IP do servidor que conseguimos anteriormente analisando a rede Docker.
ServerActive=172.17.0.2
Na linha 120.
ServerActive=127.0.0.1
Deve trocar também pelo número de IP do servidor Zabbix no Docker.
ServerActive=172.17.0.2
Na linha 131.
Hostname=Zabbix server
Alterar o nome após o símbolo de igual pelo nome do servidor atual que estamos configurando, nesse caso é zabbix-server
Hostname=zabbix-server
Após realizar as alterações no arquivo. Fazer o seguinte para salvar o arquivo.
:wq
Após digitar, aperte Enter para confirmar.
Alterar a permissão do usuário e grupo.
usermod -aG docker zabbix
E por fim, reiniciar o serviço que executa o zabbix agent para que possa carregar as novas configurações que foram alteradas.
service zabbix-agent2 restart
Após a configuração do agent Zabbix no servidor, deve acessar pelo navegador o IP do servidor Zabbix. O login inicial é "Admin" com senha "zabbix". Após ter feito login, deve seguir o passo a passo a seguir.
Na aba lateral localizada na esquerda, ir em Configurations > Hosts
2. No canto superior esquerdo, deve clica em "Create host" para adicionar uma nova máquina para ser monitorada.
3. Na aba "Host", deve colocar um nome para a máquina que estará monitorando. E no campo "Agent IP address" em "Interfaces", coloca-se o IP da máquina que deve ser monitorada. Na imagem ao lado, o IP que foi colocado é o mesmo do servidor Zabbix, pois esse foi o alvo de monitoramento.
4. Ao ir na aba "Templates", no campo "Link new templates", é necessário colocar o modelo de serviços que deseja monitorar. Para que seja possível monitorar Docker, deve aplicar a opção "Template App Docker". Como o servidor é linux, também é interessante adicionar o "Template OS Linux by Zabbix agent", assim poderá também monitorar recursos como a utilização de CPU e memória RAM do servidor. Clica-se em "Add" para adicionar a máquina ao monitoramento.
5. Saberá que o monitoramento está ativo ao observar que o ícone ZBX está verde no campo "Availability", na linha do servidor que adicionou.
6. Ao ir na aba lateral > Monitoring > Hosts > Na linha da máquina que deseja, clicar em Graphs, verá um painel parecido com esse mostrando os dados sobre os containers que estão sendo executados na máquina alvo.