常见问题
命令按单机(Docker Compose)部署给出
集群部署请换成对应的 kubectl 命令,容器/工作负载名带 ops- 前缀(如 kubectl -n hap-ops logs deploy/ops-gateway),
访问端口是 30881 而非 48881。
启动与访问
容器反复重启? 先查看日志 docker compose -f ops.yaml logs 服务名,常见原因:
- 连接信息错误 → 到「数据源」页核对(采集配置以 UI 为准)。
- 端口冲突(48881/59100/4317/4318 被占)→ 修改宿主机端口映射或停止占用进程。
- 内存不足 → 通过
docker stats查看资源占用,宿主机建议预留 8G 以上。
访问 :48881 页面持续加载?
docker ps | grep gateway确认gateway已 Up。- 浏览器控制台若出现 401 → 使用正确的
ENV_OPS_TOKEN登录。 - 通过反代访问但未配置子路径 → 反代时必须配
ENV_OPS_SUB_PATH。
登录后 Grafana 面板转圈或 404?
- 反代模式:
ENV_OPS_SUB_PATH要和反代实际路径一致(反代/mdis就配/mdis)。 - 直 连端口模式:不要配
ENV_OPS_SUB_PATH。
gateway 先于 ops-mongo 启动,是否会持续连接失败? 不会。ops-server 无法连接 ops-mongo 时会在后台退避重试,待 mongo 就绪后自动连接。判断标准是 docker logs gateway容器 | grep 告警子系统,最终打印 [alert] 告警子系统已挂载 /api/alert/ 即正常,无需手工重启容器。
监控无数据
优先查看采集状态
「数据源」页有「采集状态」列,每条数据源直接显示是否正在采集:
- 采集中 —— 正常。
- 无数据 —— 采集进程运行中,但未获取到数据,多为账号密码错误或权限不足。
- 已停止 —— 采集进程未运行。
- 未采集 —— 未为这条数据源启动采集(常见于用途未勾选「看图」)。
鼠标移到红色标签上会显示失败原因,内容为中文排查提示(如「端口不通,或对端服务未启动」「账号或密码不对:私有部署内置 ES 的用户名是 md,不是 elastic」),并附带已重试次数,不再直接展示 exporter 的英文日志或 Go 堆栈。多数采集问题可先通过该列定位。
主机(Host)面板无数据?
- 确认
nodeagent已 Up。 - 确认「数据源」页里主机数据源的 IP 能从 prometheus 容器内访问:
docker exec prometheus容器 wget -O- http://IP:59100/metrics。
中间件面板无数据? 根据「采集状态」列继续排查:
| 状态 | 含义 | 处理方式 |
|---|---|---|
| 无数据 | 连接成功但未获取到指标 | 通常是账号/密码/权限问题。ES 尤其常见,见下条 |
| 已停止 | exporter 进程未运行 | 悬停查看原因;进程会自动重试,若持续「已停止」且重试次数增加,说明目标持续不可达(地址错误/端口不通/防火墙) |
| 未采集 | 未为该数据源启动采集 | 检查该数据源「用途」是否勾了看图、是否处于启用状态 |
| 未知 | agent 未上报 | 确认 agent 容器已 Up |
Elasticsearch 显示「无数据」,但测试连接成功? 最常见的是凭据错误:私有部署内置 ES 用户名是 md