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/certs

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
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

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 --name zabbix-server --restart always -p 10051:10051 -e DB_SERVER_HOST="IP-DOCKER-HOST" -e MYSQL_USER="zabbix" -e MYSQL_PASSWORD="zabbix" -d 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 --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/Brasília" -d 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 --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" -d 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 *