# ============================================================ # 日志收集栈 Docker Compose 编排 (轻量级 Loki 方案) # # 使用方式: # docker compose -f deploy/production/logging/docker-compose.logging.yml up -d # # 包含组件: # - Loki (日志聚合存储) # - Promtail (日志收集代理) # - 可选: Filebeat (替代 Promtail) # ============================================================ services: # ==================== Loki (日志聚合) ==================== loki: image: grafana/loki:2.9.6 container_name: wm-loki restart: always command: -config.file=/etc/loki/loki-config.yml ports: - "127.0.0.1:3100:3100" volumes: - ./loki-config.yml:/etc/loki/loki-config.yml:ro - loki_data:/loki networks: - wm-network - logging deploy: resources: limits: cpus: '1.0' memory: 1G reservations: cpus: '0.25' memory: 256M logging: driver: json-file options: max-size: "30m" max-file: "3" healthcheck: test: ["CMD", "wget", "--spider", "-q", "http://localhost:3100/ready"] interval: 30s timeout: 10s retries: 3 # ==================== Promtail (日志收集) ==================== promtail: image: grafana/promtail:2.9.6 container_name: wm-promtail restart: always command: -config.file=/etc/promtail/promtail-config.yml volumes: - ./promtail-config.yml:/etc/promtail/promtail-config.yml:ro - /var/log:/var/log:ro - /var/lib/docker/containers:/var/lib/docker/containers:ro - /var/run/docker.sock:/var/run/docker.sock:ro networks: - logging - wm-network depends_on: - loki deploy: resources: limits: cpus: '0.3' memory: 256M reservations: cpus: '0.1' memory: 64M logging: driver: json-file options: max-size: "10m" max-file: "3" # ==================== 数据卷 ==================== volumes: loki_data: # ==================== 网络 ==================== networks: logging: driver: bridge name: wm-logging wm-network: external: true name: wm-network