Appearance
监控告警体系
**本文引用的文件** - [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)目录
引言
本文件面向运维与开发团队,系统化梳理 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 抓取地址与端口正确,标签匹配。
- 检查服务端点暴露与防火墙策略。
- 日志异常
- 检查日志输出目录与权限,收集器配置是否正确。
- 关注日志轮转与磁盘空间。
章节来源
- HealthController.java:11-16
- baremetal-nginx-ingress.yaml:357-376
- skywalking.yaml:34-63
- bootstrap.yml:31-38
结论
当前仓库已具备可观测性的基础能力:Spring Boot Actuator 指标、Nginx Ingress 健康检查、SkyWalking 部署资源与 Nacos 注册发现。建议在此基础上完善 Prometheus/Grafana、ELK、告警平台的落地配置,并结合前端 APM 与业务指标,形成“链路+指标+日志+告警”的闭环监控体系,持续优化采样与存储策略,提升稳定性与可维护性。
附录
- 实施清单(建议)
- 部署 Prometheus 与 Grafana,配置抓取规则与仪表盘。
- 部署 ELK,配置收集器与索引策略。
- 部署 Alertmanager 或企业告警平台,配置规则、去重与升级。
- 在业务服务中注册自定义指标,完善关键路径埋点。
- 在前端引入 APM SDK,采集用户体验指标。
- 对接 Nginx Ingress 与服务健康检查,确保探活与滚动更新稳定。
(本节为通用建议,不直接分析具体文件)