2025-06-09 12:29:10 -03:00
2025-06-09 12:38:54 -03:00
2025-06-09 13:03:01 -03:00
2025-06-09 10:07:51 -03:00

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
No description provided
Readme 471 KiB
Languages
Shell 100%