This commit is contained in:
174
deployments/observability/README.md
Normal file
174
deployments/observability/README.md
Normal file
@@ -0,0 +1,174 @@
|
||||
# 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. 配置环境变量
|
||||
|
||||
复制示例配置文件并修改:
|
||||
|
||||
```bash
|
||||
cp config.env.example config.env
|
||||
```
|
||||
|
||||
**必须修改的配置项**:
|
||||
|
||||
| 配置项 | 说明 | 示例 |
|
||||
|--------|------|------|
|
||||
| `OBS_HOST` | itom-platform 可观测中心地址 | `192.168.1.100` 或 `obs.example.com` |
|
||||
| `OBS_AUTH_TOKEN` | 鉴权 token(与中心侧一致) | `your-secret-token` |
|
||||
| `MONGODB_URI` | MongoDB 连接 URI | `mongodb://user:pass@host:27017/db` |
|
||||
|
||||
### 2. 启动日志采集
|
||||
|
||||
仅启用日志采集:
|
||||
|
||||
```bash
|
||||
docker compose --env-file config.env -f docker-compose-observability.yaml up -d
|
||||
```
|
||||
|
||||
### 3. 启动完整可观测性(日志 + 指标)
|
||||
|
||||
同时启用日志和指标采集:
|
||||
|
||||
```bash
|
||||
docker compose --env-file config.env -f docker-compose-observability.yaml --profile metrics up -d
|
||||
```
|
||||
|
||||
### 4. 验证服务状态
|
||||
|
||||
```bash
|
||||
# 查看服务状态
|
||||
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` 中的配置:
|
||||
|
||||
```env
|
||||
# 默认配置
|
||||
MONGODB_URI=mongodb://openIM:openIM123@localhost:37017/openim_v3?authSource=openim_v3
|
||||
```
|
||||
|
||||
如果 MongoDB 运行在 Docker 容器中,请使用容器名或宿主机 IP:
|
||||
|
||||
```env
|
||||
# 使用容器名(需要在同一网络)
|
||||
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:
|
||||
|
||||
```env
|
||||
REDIS_ADDR=localhost:6379
|
||||
REDIS_PASSWORD=your_redis_password
|
||||
```
|
||||
|
||||
### 网络配置
|
||||
|
||||
如果 chat-deploy 的服务运行在其他 Docker 网络中,需要将可观测性组件加入该网络。
|
||||
|
||||
编辑 `docker-compose-observability.yaml`,添加外部网络:
|
||||
|
||||
```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 是否正常运行:
|
||||
```bash
|
||||
docker logs chat-deploy-promtail
|
||||
```
|
||||
|
||||
2. 确认 LOKI_URL 配置正确:
|
||||
```bash
|
||||
echo $LOKI_URL
|
||||
# 应输出类似:http://192.168.1.100/loki/api/v1/push
|
||||
```
|
||||
|
||||
3. 测试网络连通性:
|
||||
```bash
|
||||
curl -v http://<OBS_HOST>/loki/api/v1/push
|
||||
```
|
||||
|
||||
### MongoDB 指标缺失
|
||||
|
||||
1. 检查 MongoDB Exporter 是否正常运行:
|
||||
```bash
|
||||
docker logs chat-deploy-mongodb-exporter
|
||||
```
|
||||
|
||||
2. 验证 MongoDB 连接:
|
||||
```bash
|
||||
curl http://localhost:9216/metrics | grep mongodb_up
|
||||
# 应输出:mongodb_up 1
|
||||
```
|
||||
|
||||
3. 确认 MongoDB URI 格式正确且网络可达
|
||||
|
||||
### 指标未推送到中心
|
||||
|
||||
1. 检查 Prometheus Agent 日志:
|
||||
```bash
|
||||
docker logs chat-deploy-prometheus-agent
|
||||
```
|
||||
|
||||
2. 确认 remote_write URL 配置正确
|
||||
|
||||
3. 检查网络防火墙是否允许访问中心端口
|
||||
|
||||
## 更新配置
|
||||
|
||||
修改 `config.env` 后,重启服务:
|
||||
|
||||
```bash
|
||||
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
|
||||
```
|
||||
Reference in New Issue
Block a user