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

4.1 KiB
Raw Blame History

chat-deploy 可观测性部署指南

本目录包含将 chat-deploy 接入 itom-platform 可观测中心所需的配置文件。

功能说明

  • 日志采集:通过 Promtail 采集 Docker 容器日志,推送到 itom-platform 的 Loki
  • MongoDB 监控:通过 MongoDB Exporter 采集 MongoDB 指标
  • Redis 监控(可选):通过 Redis Exporter 采集 Redis 指标
  • 系统监控(可选):通过 Node Exporter 采集系统级指标CPU/Memory/Disk/Network

快速开始

1. 配置环境变量

复制示例配置文件并修改:

cp config.env.example config.env

必须修改的配置项

配置项 说明 示例
OBS_HOST itom-platform 可观测中心地址 192.168.1.100obs.example.com
OBS_AUTH_TOKEN 鉴权 token与中心侧一致 your-secret-token
MONGODB_URI MongoDB 连接 URI mongodb://user:pass@host:27017/db

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

4. 验证服务状态

# 查看服务状态
docker compose --env-file config.env -f docker-compose-observability.yaml ps

# 查看 Promtail 日志
docker logs chat-deploy-promtail

# 查看 MongoDB Exporter 指标
curl http://localhost:9216/metrics | head -50

配置说明

MongoDB 配置

MongoDB Exporter 需要正确的连接 URI。根据 config/mongodb.yml 中的配置:

# 默认配置
MONGODB_URI=mongodb://openIM:openIM123@localhost:37017/openim_v3?authSource=openim_v3

如果 MongoDB 运行在 Docker 容器中,请使用容器名或宿主机 IP

# 使用容器名(需要在同一网络)
MONGODB_URI=mongodb://openIM:openIM123@mongo:27017/openim_v3?authSource=openim_v3

# 使用宿主机 IP
MONGODB_URI=mongodb://openIM:openIM123@host.docker.internal:37017/openim_v3?authSource=openim_v3

Redis 配置(可选)

如果需要监控 Redis

REDIS_ADDR=localhost:6379
REDIS_PASSWORD=your_redis_password

网络配置

如果 chat-deploy 的服务运行在其他 Docker 网络中,需要将可观测性组件加入该网络。

编辑 docker-compose-observability.yaml,添加外部网络:

networks:
  chat-deploy-obs:
    driver: bridge
  # 添加外部网络
  chat-deploy-network:
    external: true

services:
  mongodb-exporter:
    networks:
      - chat-deploy-obs
      - chat-deploy-network  # 加入 chat-deploy 网络

监控面板

在 itom-platform 的 Grafana 中,使用 chat-deploy-dashboard 查看:

  • 服务健康状态
  • Go 运行时指标CPU、内存、GC
  • MongoDB 操作统计query/insert/update/delete
  • MongoDB 连接数
  • Redis 指标(如已配置)
  • 应用日志

故障排查

日志未采集

  1. 检查 Promtail 是否正常运行:

    docker logs chat-deploy-promtail
    
  2. 确认 LOKI_URL 配置正确:

    echo $LOKI_URL
    # 应输出类似http://192.168.1.100/loki/api/v1/push
    
  3. 测试网络连通性:

    curl -v http://<OBS_HOST>/loki/api/v1/push
    

MongoDB 指标缺失

  1. 检查 MongoDB Exporter 是否正常运行:

    docker logs chat-deploy-mongodb-exporter
    
  2. 验证 MongoDB 连接:

    curl http://localhost:9216/metrics | grep mongodb_up
    # 应输出mongodb_up 1
    
  3. 确认 MongoDB URI 格式正确且网络可达

指标未推送到中心

  1. 检查 Prometheus Agent 日志:

    docker logs chat-deploy-prometheus-agent
    
  2. 确认 remote_write URL 配置正确

  3. 检查网络防火墙是否允许访问中心端口

更新配置

修改 config.env 后,重启服务:

docker compose --env-file config.env -f docker-compose-observability.yaml down
docker compose --env-file config.env -f docker-compose-observability.yaml --profile metrics up -d