# 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: ```yaml --- 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: ```shell #!/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: ```shell 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.