Files
chat-deploy/deployments/observability/docker-compose-observability.yaml
kim ea386977ba
Some checks failed
itom-platform auto build image / build (push) Has been cancelled
修复业务侧日志采集失败问题
2026-01-21 12:08:32 +08:00

136 lines
4.4 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# chat-deploy 可观测性组件部署配置
# 用于向 itom-platform 可观测中心推送日志和指标
#
# 使用方法:
# 1. 复制 config.env.example 为 config.env 并修改配置
# 2. 启动服务docker compose --env-file config.env -f docker-compose-observability.yaml up -d
# 3. 如需启用指标采集docker compose --env-file config.env -f docker-compose-observability.yaml --profile metrics up -d
services:
# ==============================
# 日志采集Promtail
# 采集 Docker 容器日志并推送到 itom-platform 的 Loki
# ==============================
promtail:
image: "${PROMTAIL_IMAGE:-grafana/promtail:3.0.0}"
container_name: chat-deploy-promtail
restart: always
user: "0"
command: ["-config.file=/etc/promtail/config.yml", "-config.expand-env=true"]
# 禁用 promtail 自身的日志输出到 Docker避免日志循环
logging:
driver: "none"
environment:
- LOKI_URL=${LOKI_URL}
- OBS_AUTH_TOKEN=${OBS_AUTH_TOKEN}
- OBS_PROJECT=${OBS_PROJECT}
- OBS_SERVICE=${OBS_SERVICE}
- DOCKER_API_VERSION=${DOCKER_API_VERSION:-1.44}
volumes:
- /var/lib/docker/containers:/var/lib/docker/containers:ro
- /var/run/docker.sock:/var/run/docker.sock:ro
- ./config/promtail.yaml:/etc/promtail/config.yml:ro
networks:
- chat-deploy-obs
# ==============================
# 指标采集Prometheus Agent Remote Write
# 可选,需要 --profile metrics 启用
# ==============================
prometheus-agent:
profiles: ["metrics"]
image: prom/prometheus:latest
container_name: chat-deploy-prometheus-agent
restart: always
user: "0"
command:
- "--config.file=/prometheus/prometheus.yml"
- "--storage.tsdb.path=/prometheus"
environment:
- METRICS_REMOTE_WRITE_URL=${METRICS_REMOTE_WRITE_URL}
- METRICS_TARGETS=${METRICS_TARGETS}
- OBS_AUTH_ENABLE=${OBS_AUTH_ENABLE:-false}
- OBS_AUTH_TOKEN=${OBS_AUTH_TOKEN}
- OBS_PROJECT=${OBS_PROJECT}
- OBS_SERVICE=${OBS_SERVICE}
- OBS_SERVICE_NAME=${OBS_SERVICE_NAME}
- OBS_ENV=${OBS_ENV:-prod}
- REDIS_EXPORTER_TARGETS=${REDIS_EXPORTER_TARGETS}
- MONGODB_EXPORTER_TARGETS=${MONGODB_EXPORTER_TARGETS}
- NODE_EXPORTER_TARGETS=${NODE_EXPORTER_TARGETS}
- REDIS_EXPORTER_SERVICE=${REDIS_EXPORTER_SERVICE}
- MONGODB_EXPORTER_SERVICE=${MONGODB_EXPORTER_SERVICE}
- NODE_EXPORTER_SERVICE=${NODE_EXPORTER_SERVICE}
volumes:
- prometheus_agent_data:/prometheus
- ./config/prometheus-agent-entrypoint.sh:/etc/prometheus/entrypoint.sh:ro
entrypoint: ["/bin/sh", "/etc/prometheus/entrypoint.sh"]
networks:
- chat-deploy-obs
depends_on:
- mongodb-exporter
# ==============================
# MongoDB Exporter
# 采集 MongoDB 指标,需要 --profile metrics 启用
# ==============================
mongodb-exporter:
profiles: ["metrics"]
image: percona/mongodb_exporter:0.40.0
container_name: chat-deploy-mongodb-exporter
restart: always
command:
- "--mongodb.uri=${MONGODB_URI}"
- "--compatible-mode"
- "--collect-all"
environment:
- MONGODB_URI=${MONGODB_URI}
ports:
- "9216:9216"
networks:
- chat-deploy-obs
# ==============================
# Redis Exporter可选
# 采集 Redis 指标,需要 --profile metrics 启用
# ==============================
redis-exporter:
profiles: ["metrics"]
image: oliver006/redis_exporter:latest
container_name: chat-deploy-redis-exporter
restart: always
environment:
- REDIS_ADDR=${REDIS_ADDR}
- REDIS_PASSWORD=${REDIS_PASSWORD}
ports:
- "9121:9121"
networks:
- chat-deploy-obs
# ==============================
# Node Exporter可选
# 采集系统级指标CPU/Memory/Disk/Network
# 需要 --profile metrics 启用
# ==============================
node-exporter:
profiles: ["metrics"]
image: prom/node-exporter:latest
container_name: chat-deploy-node-exporter
restart: always
command:
- "--path.rootfs=/host"
- "--collector.filesystem.mount-points-exclude=^/(sys|proc|dev|host|etc)($$|/)"
volumes:
- /:/host:ro,rslave
ports:
- "9100:9100"
networks:
- chat-deploy-obs
networks:
chat-deploy-obs:
driver: bridge
volumes:
prometheus_agent_data: {}