Zabbix
📌 Sobre o Projeto
Um compose personalizado do zabbix para instalar pacotes sem a necessidade de um re-build, neste arquivo, utilizo uma versão mais leve do sistema.
🚀 Como Usar
Via docker compose (Meu preferido.) / Portainer
- Para docker-compose, crie um arquivo docker-compose.yaml com o conteúdo abaixo:
---
services:
zbx-postgres:
image: postgres:alpine
container_name: zbx-postgres
restart: unless-stopped
environment:
POSTGRES_DB: zabbix
POSTGRES_USER: zabbix
POSTGRES_PASSWORD: zabbix
volumes:
- ./db:/var/lib/postgresql/data
networks:
- zbx-net
zbx-server:
image: zabbix/zabbix-server-pgsql:alpine-latest
container_name: zbx-server
restart: unless-stopped
user: root
environment:
DB_SERVER_HOST: zbx-postgres
POSTGRES_USER: zabbix
POSTGRES_PASSWORD: zabbix
ZBX_CACHESIZE: 8G
ZBX_STARTPOLLERS: 19
ZBX_HOSTNAME: "zbx-server"
ZBX_TIMEOUT: 10
volumes:
- "./data/alertscripts:/usr/lib/zabbix/alertscripts"
- "./data/externalscripts:/usr/lib/zabbix/externalscripts"
- "./data/modules:/var/lib/zabbix/modules"
- "./data/snmptraps:/var/lib/zabbix/snmptraps"
- "./data/mibs:/var/lib/zabbix/mibs"
- "./data/export:/var/lib/zabbix/export"
- "/etc/localtime:/etc/localtime:ro"
- "./zabbix-init.sh:/usr/local/bin/zabbix-entrypoint.sh"
depends_on:
- zbx-postgres
entrypoint: ["/usr/local/bin/zabbix-entrypoint.sh"]
command: ["docker-entrypoint.sh"]
networks:
- zbx-net
zbx-web:
image: zabbix/zabbix-web-nginx-pgsql:alpine-latest
container_name: zbx-web
restart: unless-stopped
environment:
DB_SERVER_HOST: zbx-postgres
POSTGRES_USER: zabbix
POSTGRES_PASSWORD: zabbix
ZBX_SERVER_HOST: zbx-server
ZBX_MEMORYLIMIT: 512M
ZBX_SERVER_NAME: Instant
PHP_TZ: "America/Sao_Paulo"
depends_on:
- zbx-server
ports:
- 14201:8080
networks:
- zbx-net
zbx-agent:
image: zabbix/zabbix-agent:alpine-latest
container_name: zbx-agent
restart: unless-stopped
user: root
environment:
- ZBX_SERVER_HOST=zbx-server,zbx-agent
- ZBX_SERVER=zbx-server
- ZBX_HOSTNAME=zbx-server
#- ZBX_DEBUGLEVEL=5
- ZBX_LISTENIP=0.0.0.0
volumes:
- "./data/agent:/etc/zabbix/zabbix_agentd.d"
- "./data/agentmodules:/var/lib/zabbix/modules"
- "/etc/localtime:/etc/localtime:ro"
depends_on:
- zbx-server
networks:
zbx-net:
aliases:
- zbx-agent
- zbx-agent-passive
- zbx-agent-ubuntu
networks:
zbx-net:
- Criar um arquivo chamado zabbix-init.sh com o conteudo abaixo:
#!/bin/sh
echo "[INIT] Instalando mtr no container..."
apk update && apk add --no-cache mtr
echo "[INIT] Executando entrypoint original..."
# Usa exec sem su, preservando variáveis de ambiente como DB_SERVER_HOST
exec /usr/bin/docker-entrypoint.sh /usr/sbin/zabbix_server --foreground -c /etc/zabbix/zabbix_server.conf
- Após criar o arquivo execute os seguintes comandos:
chmod +x zabbix-init.sh && chmod 755 zabbix-init.sh
Tip
- Garanta que todas as pastas / volumes estejam criados e com as corretas permissões configuradas.
Description
Languages
Shell
100%