Instalando o Zabbix via Docker

Neste repositório do GitHub tem várias informações a cerca da construção das imagens oficiais do Zabbix no Docker.

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/


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.

mkdir -p /opt/docker/mysql/zabbix/data

2) OPCIONAL – Crie o diretório de certificado para uso do Zabbix via HTTPS (isso é recomendado por questões de segurança). Depois disso, copie o arquivo do certificado, da autoridade certificadora chave pública e privada para esse diretório.

mkdir -p /opt/docker/zabbix/ssl

3) Baixe a última versão das imagens docker do MySQL, Zabbix-Agent, Zabbix-ProxyZabbiz-Server e Zabbix-Web.

VERSAO_MAIOR_ZABBIX=3.4
docker pull mysql:5.7
docker pull zabbix/zabbix-agent:ubuntu-$VERSAO_MAIOR_ZABBIX-latest
docker pull zabbix/zabbix-proxy-sqlite3:ubuntu-$VERSAO_MAIOR_ZABBIX-latest
docker pull zabbix/zabbix-server-mysql:ubuntu-$VERSAO_MAIOR_ZABBIX-latest
docker pull zabbix/zabbix-web-apache-mysql:ubuntu-$VERSAO_MAIOR_ZABBIX-latest

4) Inicie o conteiner docker do MySQL criando o banco de dados para o zabbix. Altere os dados em negrito conforme as necessissidades do seu ambiente.

docker run -d --name mysql-zabbix \
 --restart always \
 -p 3306:3306 \
 -v /opt/docker/mysql/zabbix/data:/var/lib/mysql \
 -e MYSQL_ROOT_PASSWORD=secret \
 -e MYSQL_DATABASE=zabbix \
 -e MYSQL_USER=zabbix \
 -e MYSQL_PASSWORD=zabbix \
 mysql:5.7

Para ver o log, use o comando abaixo.

docker logs -f mysql-zabbix

5) Inicie o conteiner docker do Zabbix-Server acessando o banco de dados criado no MySQL. Altere os dados em negrito e em vermelho conforme as necessissidades do seu ambiente.

docker run -d --name zabbix-server \
 --restart always \
 -p 10051:10051 \
 -e DB_SERVER_HOST="IP-DOCKER-HOST" \
 -e MYSQL_USER="zabbix" \
 -e MYSQL_PASSWORD="zabbix" \
 zabbix/zabbix-server-mysql:ubuntu-$VERSAO_MAIOR_ZABBIX-latest

Para ver o log, use o comando abaixo.

docker logs -f zabbix-server

6) Inicie o conteiner Zabbix-Web SEM HTTPS. Altere os dados em negrito e em vermelho conforme as necessissidades do seu ambiente.

docker run -d --name zabbix-web \
 --restart always \
 -p 80:80 \
 -e DB_SERVER_HOST="IP-DOCKER-HOST" \
 -e MYSQL_USER="zabbix" \
 -e MYSQL_PASSWORD="zabbix" \
 -e ZBX_SERVER_HOST="IP-DOCKER-HOST" \
 -e PHP_TZ="America/Sao_Paulo" \
 zabbix/zabbix-web-apache-mysql:ubuntu-$VERSAO_MAIOR_ZABBIX-latest

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 dados em negrito e em vermelho conforme as necessissidades do seu ambiente.

docker run -d --name zabbix-web \
 --restart always \
 -p 80:80 -p 443:443 \
 -v /opt/docker/zabbix/ssl/file_certificado.crt:/etc/ssl/apache2/ssl.crt \
 -v /opt/docker/zabbix/ssl/file_certificado.key:/etc/ssl/apache2/ssl.key \
 -e DB_SERVER_HOST="IP-DOCKER-HOST" \
 -e MYSQL_USER="zabbix" \
 -e MYSQL_PASSWORD="zabbix" \
 -e ZBX_SERVER_HOST="IP-DOCKER-HOST" \
 -e PHP_TZ="America/Sao_Paulo" \
 zabbix/zabbix-web-apache-mysql:ubuntu-$VERSAO_MAIOR_ZABBIX-latest

Para ver o log, use o comando abaixo.

docker logs -f zabbix-web

7) Inicie o conteiner docker do Zabbix-Agent. Altere os dados em negrito e em vermelho conforme as necessissidades do seu ambiente.

docker run -d --name zabbix-agent \
 --restart always \
 -p 10050:10050 \
 -e ZBX_HOSTNAME="$(hostname)" \
 -e ZBX_SERVER_HOST="IP_OU_NOME_DNS_ZABBIX_SERVER" \
 zabbix/zabbix-agent:ubuntu-$VERSAO_MAIOR_ZABBIX-latest

Para ver o log, use o comando abaixo.

docker logs -f zabbix-agent

8) OPCIONAL – Inicie o conteiner docker do Zabbix-Proxy. Altere os dados em negrito e em vermelho conforme as necessissidades do seu ambiente.

docker run -d --name zabbix-proxy \
 --restart always \
 -p 10053:10050 \
 -e ZBX_HOSTNAME="$(hostname)" \
 -e ZBX_SERVER_HOST="IP_OU_NOME_DNS_ZABBIX_SERVER" \
 zabbix/zabbix-proxy-sqlite3:ubuntu-$VERSAO_MAIOR_ZABBIX-latest

Para ver o log, use o comando abaixo.

docker logs -f zabbix-proxy

9) 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.

10) Se quiser parar o conteiner, é só executar o comando abaixo.

docker stop nome-conteiner

11) Para iniciá-lo novamente, execute o comando abaixo.

docker start nome-conteiner

12) Para remover um conteiner, use os comandos abaixo.

docker stop nome-conteiner
docker rm nome-conteiner

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

Há um projeto independente, chamado Monitoring Artist, que oferece um plus de funcionalidades ao Zabbix usando imagens Docker. Vale a pena conferir.
14) 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 necessissidades do seu ambiente.
docker exec mysql-zabbix sh -c 'exec mysqldump zabbix -uroot -p"MYSQL_ROOT_PASSWORD"' > /home/zabbix.sql
Lembrando que os dados do banco são persistidos no diretório /opt/docker/mysql/zabbix/data do Docker Host no qual o conteiner está sendo executado.
15- OPCIONAL – Se precisar restaurar o dump, siga os passos abaixo.
Remova o banco antigo e crie-o novamente.
docker exec -i -t mysql-zabbix /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 dados em negrito e em vermelho conforme as necessissidades do seu ambiente.

docker stop zabbix-web
docker stop zabbix-server
docker exec -i mysql-zabbix /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 mysql-zabbix sh -c 'exec /usr/bin/mysql -u root --password="MYSQL_ROOT_PASSWORD" zabbix'
docker start zabbix-server
docker start zabbix-web

 

Deixe uma resposta

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