Zabbix Server 6.4 com docker-compose
Criação do Zabbix Server usando o docker-compose
Quero compartilhar aqui um projeto em docker compose que fiz para subir um servidor Zabbix Server 6.4 que utiliza um banco de dados Postgres. Também habilitei o https no servidor de frontend do zabbix, já utilizando uma feature que foi colocada pelos mantenedores da imagem. Esse recurso não tem uma documentação falando no site da imagem, o que dificultou um pouco a minha vida.
A seguir alguns detalhes que vou esclarecer melhor para quem for usar esse arquivo.
Para habilitar o https no frontend do Zabbix o recurso que eu falei que foi feito pelos desenvolvedores e que não achei a documentação no site da imagem é bem simples de uar, só precisa mapear como volume as chaves públicas e privadas com os nomes de ssl.key e ssl.crt para o diretório /etc/ssl/apache2/ que ao subir o container e localizar esses arquivos o container do frontend vai automaticamente habilitar no apache o https. uma coisa que não achei para fazer de forma automática é habilitar o redirecionamento automático das conexões de http para o https, caso eu identifique uma forma simples eu volto a atualizar o post.
Eu gosto de sempre criar uma rede separada para cada projeto que estou subindo em Docker, por isso tem essa criação de uma rede 10.200.0.0/24, isso não chega a ser necessário ou obrigatório, mas na minha opinião é bem util.
Vale lembrar que o Zabbix suporta tanto o Apache como o nginx como Servidores Web, e como banco de dados ele suporta MySQL e Postgres como bancos de dados, por isso se voce deseja usar uma versão deferente das versões que eu estou usando, é bem fácil de realizar a toda, apenas selecionando uma imagem diferente.
Alem dos servidores e bancos de dados diferentes que o Zabbix mantem, eles também mantem imagens de sistemas operacionais diferentes, voce pode escolher imagens usando o Oracle Linux, Ubuntu ou Alpine essa escolha fica a critério de cada um que for gerenciar o Servidor Zabbix.
Arquivo docker-compose para o Zabbix Server
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 |
version: '2.4' services: zabbix-server: container_name: zabbix-server image: zabbix/zabbix-server-pgsql:ol-trunk restart: always pull_policy: always environment: - DB_SERVER_HOST=10.200.0.10 - POSTGRES_USER=postgres - POSTGRES_PASSWORD=SENHA volumes: - /srv/volumes/zabbix-server-module:/var/lib/zabbix/modules networks: zabbix-rede: ipv4_address: 10.200.0.7 zabbix-frontend: container_name: zabbix-frontend image: zabbix/zabbix-web-apache-pgsql:ubuntu-trunk restart: always pull_policy: always environment: - DB_SERVER_HOST=10.200.0.10 - POSTGRES_USER=postgres - POSTGRES_PASSWORD=SENHA - ZBX_SERVER_HOST=10.200.0.7 - PHP_TZ=America/Sao_Paulo networks: zabbix-rede: ipv4_address: 10.200.0.8 ports: - 8080:8080 - 443:8443 volumes: - /srv/volumes/zabbix-frontend/ssl.key:/etc/ssl/apache2/ssl.key - /srv/volumes/zabbix-frontend/ssl.crt:/etc/ssl/apache2/ssl.crt zabbix-pgsql: container_name: zabbix-pgsql image: postgres:15.1-bullseye restart: always environment: - POSTGRES_PASSWORD=SENHA volumes: - /srv/volumes/zabbix-pgsql:/var/lib/postgresql/data networks: zabbix-rede: ipv4_address: 10.200.0.10 ports: - 5432:5432 networks: zabbix-rede: driver: bridge ipam: config: - subnet: 10.200.0.0/24 gateway: 10.200.0.1 |
Também estou disponibilizando no meu repositório do gitlab esse projeto: https://gitlab.com/publicos-adonai/docker-compose-zabbix-server
Referências
Site do Zabbix que mostra a lista de imagem Docker: https://www.zabbix.com/container_images
Docker imagem do Servidor Zabbix com Postgresl: https://hub.docker.com/r/zabbix/zabbix-server-pgsql
Imagem Docker do Zabbix Frontend com Apache e Postgresl: https://hub.docker.com/r/zabbix/zabbix-web-apache-pgsql
Banco de Dados Postgresl: https://hub.docker.com/_/postgres
Projeto do Zabbix que contêm vários Docker compose muito mais completos que o meu para usuários mais experientes: https://github.com/zabbix/zabbix-docker
Para visualizar mais conteúdo do meu site sobre Zabbix: https://www.adonai.eti.br/category/zabbix
Mais conteúdo sobre Docker: https://www.adonai.eti.br/category/docker
Pingback: Segurança em Docker: Melhores Práticas Essenciais - Site do Adonai Canêz
Obrigado por compartilhar seu compose.
Roubei-lhe as configurações de rede e o modifiquei de acordo com meu ambiente. Funcionou lindamente e resolveu meu problema: o agent zabbix instalado no host do container perdia comunicação com o container do zabbix proxy após este ser recriado e subir com um novo IP.
Olá Adonai!
Muito obrigado pelo seu post aqui, me ajudou muito!
Estou tentando subir o mesmo docker-compose que o seu, mas o meu zabbix-server está dando este problema: “cannot use database “zabbix”: its “users” table is empty (is this the Zabbix proxy database?)”
Sabe o que pode ser?
A única diferença é que estou usando o MySQL para banco de dados.
Obrigado!
Rubens esse aviso é porque não existe o banco de dados do mysql, tente criar antes a database e o usuário no banco antes de mandar o server conectar nele