修复业务侧日志采集失败问题
Some checks failed
itom-platform auto build image / build (push) Has been cancelled

This commit is contained in:
kim
2026-01-21 12:08:32 +08:00
parent e018f742ad
commit ea386977ba
5 changed files with 677 additions and 0 deletions

View File

@@ -0,0 +1,135 @@
# 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: {}