Skip to content

监控告警体系

**本文引用的文件** - [docker-compose.yml](file://lemes-cloud/src/devops/docker-compose/docker-compose.yml) - [skywalking.yaml](file://lemes-cloud/src/devops/k8s/service/base/skywalking.yaml) - [baremetal-nginx-ingress.yaml](file://lemes-cloud/src/devops/k8s/baremetal-nginx-ingress.yaml) - [console-config.json](file://lemes-cloud/src/devops/console/console-config.json) - [bootstrap.yml](file://lemes-cloud/lemes-business-devicemate/lemes-service-dm-workflow/lemes-service-dm-workflow-server/src/main/resources/bootstrap.yml) - [HealthController.java](file://lemes-cloud/lemes-business-devicemate/lemes-service-dm-workflow/lemes-service-dm-workflow-server/src/main/java/com/lenovo/lemes/service/dm/workflow/controller/HealthController.java) - [FeignConfig.java](file://lemes-cloud/lemes-business-devicemate/lemes-service-dm-store/lemes-service-dm-store-common/src/main/java/com/lenovo/lemes/service/dm/store/client/config/config/FeignConfig.java)

目录

  1. 引言
  2. 项目结构
  3. 核心组件
  4. 架构总览
  5. 详细组件分析
  6. 依赖关系分析
  7. 性能考量
  8. 故障排查指南
  9. 结论
  10. 附录

引言

本文件面向运维与开发团队,系统化梳理 DeviceMate(Lemes Cloud)在监控告警方面的现状与落地建议,覆盖应用监控配置(Prometheus 指标、Grafana 可视化)、自定义监控指标、服务健康检查、分布式链路追踪(SkyWalking 部署与使用)、日志管理方案(ELK Stack 部署与实践)、告警机制设计(规则、通知、去重与升级策略),并补充性能监控指标与用户体验监控(APM 指标、业务指标)等关键内容,帮助团队建立完整、可操作的监控告警体系。

项目结构

  • 后端采用 Spring Cloud/Nacos 架构,服务通过 Nacos 注册发现,管理端点默认暴露,便于集成 Prometheus 与健康检查。
  • 前端基于 Vue/UniApp,提供设备管理、巡检、维修、保养等模块,前端侧可结合 APM 工具采集用户体验指标。
  • DevOps 层提供 Docker Compose 与 Kubernetes 部署脚本,包含 SkyWalking、Nginx Ingress、Harbor 等组件,便于统一监控与可观测性建设。

图示来源

章节来源

核心组件

  • 服务注册与发现:Nacos(Kubernetes 配置中包含 Nacos 资源定义,便于服务治理与配置下发)
  • 分布式链路追踪:SkyWalking(OAP 与 UI 部署,支持 gRPC/HTTP 接口)
  • 网关与入口:Nginx Ingress(提供健康检查端点与外部访问)
  • 日志与可视化:ELK(可选,用于日志收集与检索)
  • 指标与仪表盘:Prometheus + Grafana(可选,用于系统与业务指标)

章节来源

架构总览

下图展示监控告警体系在整体架构中的位置与交互关系:

图示来源

详细组件分析

应用监控配置(Prometheus 指标与健康检查)

  • 指标暴露:Spring Boot Actuator 默认开启端点,可通过管理端点暴露 JVM、进程、业务指标,便于 Prometheus 抓取。
  • 健康检查:服务提供 /health 接口,Ingress 提供 /healthz 健康检查端点,可用于探活与滚动更新控制。
  • 自定义指标:可在 Micrometer 上注册业务指标(计数器、直方图、仪表),结合 Grafana 进行可视化。

图示来源

章节来源

分布式链路追踪(SkyWalking)

  • 部署:SkyWalking OAP 与 UI 通过 Kubernetes Deployment/Service 部署,OAP 使用 Nacos 作为注册中心,ES 作为存储。
  • 数据收集:业务服务接入 SkyWalking Agent,自动上报追踪数据至 OAP。
  • 性能分析:通过 UI 查看调用链、慢调用、错误趋势;结合服务拓扑定位问题。
  • 错误追踪:基于 Trace ID 快速关联日志与指标,定位异常请求。

图示来源

章节来源

日志管理方案(ELK Stack)

  • 部署:可选 Elasticsearch/Logstash/Kibana 组件,结合 Filebeat/Fluent Bit 收集容器日志与文件日志。
  • 收集:业务服务输出到标准输出或文件,由收集器统一推送至 Elasticsearch。
  • 分析与检索:通过 Kibana 构建仪表盘与查询语句,实现日志聚合、过滤与告警联动。
  • 轮转:结合 logback/log4j2 的滚动策略与容器日志驱动轮转,避免单文件过大。

(本图为概念示意,不直接映射具体源码文件)

告警机制设计

  • 规则配置:基于 Prometheus Rule 定义阈值、时间窗口、聚合维度;基于日志/链路异常设置规则。
  • 通知渠道:邮件、IM、短信等,结合告警平台(如 Prometheus Alertmanager 或企业自有平台)。
  • 去重与静默:按告警键去重、静默窗口、标签匹配,避免风暴与误报。
  • 升级策略:分级升级(首次/二次/三次),超时未恢复自动升级到更高级别通道。

(本图为概念示意,不直接映射具体源码文件)

性能监控指标

  • CPU/内存/磁盘/网络:通过操作系统指标与容器指标(如 cAdvisor/Prometheus Node Exporter)采集。
  • 数据库性能:SQL 执行时延、连接数、锁等待、慢查询等,结合数据库内置指标与 APM。
  • 业务指标:请求量、成功率、P95/P99 时延、错误率、吞吐量等。

(本图为概念示意,不直接映射具体源码文件)

用户体验监控(APM/业务指标)

  • 前端 APM:采集首屏时间、交互延迟、错误率、用户路径等。
  • 业务指标:关键流程耗时、转化率、活跃用户、留存等。
  • 告警联动:将前端异常与后端链路异常统一纳入告警平台。

(本图为概念示意,不直接映射具体源码文件)

依赖关系分析

  • 服务间依赖:业务服务通过 Nacos 注册与发现,网关统一入口,Ingress 提供健康检查与路由。
  • 追踪依赖:SkyWalking Agent 注入业务服务,OAP 依赖 Nacos 与 ES。
  • 指标依赖:Prometheus 抓取 Actuator 指标,Grafana 渲染仪表盘。
  • 日志依赖:业务日志经收集器进入 ELK,Kibana 可视化与检索。

图示来源

章节来源

性能考量

  • 指标规模:合理设置抓取间隔与保留周期,避免指标风暴。
  • 链路采样:根据流量与成本平衡采样率,保证关键链路可见性。
  • 存储容量:ES/数据库指标与日志按期归档与清理,控制存储增长。
  • 网络与安全:Ingress 与 OAP/UI 通过 NodePort/ClusterIP 暴露,注意访问控制与 TLS。

(本节为通用建议,不直接分析具体文件)

故障排查指南

  • 健康检查失败
    • 检查服务 /health 是否可用,确认 Actuator 端点已暴露。
    • 检查 Ingress /healthz 是否返回 200。
  • 链路缺失
    • 确认 Agent 已正确注入,OAP 可连通 Nacos 与 ES。
    • 核对服务元数据与注册信息。
  • 指标缺失
    • 确认 Prometheus 抓取地址与端口正确,标签匹配。
    • 检查服务端点暴露与防火墙策略。
  • 日志异常
    • 检查日志输出目录与权限,收集器配置是否正确。
    • 关注日志轮转与磁盘空间。

章节来源

结论

当前仓库已具备可观测性的基础能力:Spring Boot Actuator 指标、Nginx Ingress 健康检查、SkyWalking 部署资源与 Nacos 注册发现。建议在此基础上完善 Prometheus/Grafana、ELK、告警平台的落地配置,并结合前端 APM 与业务指标,形成“链路+指标+日志+告警”的闭环监控体系,持续优化采样与存储策略,提升稳定性与可维护性。

附录

  • 实施清单(建议)
    • 部署 Prometheus 与 Grafana,配置抓取规则与仪表盘。
    • 部署 ELK,配置收集器与索引策略。
    • 部署 Alertmanager 或企业告警平台,配置规则、去重与升级。
    • 在业务服务中注册自定义指标,完善关键路径埋点。
    • 在前端引入 APM SDK,采集用户体验指标。
    • 对接 Nginx Ingress 与服务健康检查,确保探活与滚动更新稳定。

(本节为通用建议,不直接分析具体文件)