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) - [lemes-splunk.yaml](file://lemes-cloud/src/devops/k8s/service/base/lemes-splunk.yaml) - [application.yml](file://lemes-cloud/lemes-business-devicemate/lemes-service-dm-common/lemes-service-dm-common-server/src/main/resources/application.yml) - [bootstrap.yml](file://lemes-cloud/lemes-auth/src/main/resources/bootstrap.yml) - [lemes-web.yaml](file://lemes-cloud/src/devops/k8s/service/expose-port/lemes-web.yaml) - [lemes-gateway-ban-actuator.yaml](file://lemes-cloud/src/devops/k8s/service/base/lemes-gateway-ban-actuator.yaml) - [lemes-nacos.yaml](file://lemes-cloud/src/devops/k8s/service/base/lemes-nacos.yaml) - [lemes-nacos-pgsql.yaml](file://lemes-cloud/src/devops/k8s/service/base/lemes-nacos-pgsql.yaml) - [lemes-eureka.yaml](file://lemes-cloud/src/devops/k8s/service/base/lemes-eureka.yaml) - [lemes-web-dcc-npi-https.yaml](file://lemes-cloud/src/devops/k8s/service/base/lemes-web-dcc-npi-https.yaml) - [lemes-web-igreen-https.yaml](file://lemes-cloud/src/devops/k8s/service/base/lemes-web-igreen-https.yaml) - [lemes-web-maas.yaml](file://lemes-cloud/src/devops/k8s/service/base/lemes-web-maas.yaml) - [lemes-service-dm-device.yaml](file://lemes-cloud/src/devops/k8s/service/expose-port/lemes-service-dm-device.yaml) - [lemes-service-dm-store.yaml](file://lemes-cloud/src/devops/k8s/service/expose-port/lemes-service-dm-store.yaml) - [lemes-service-dm-workflow.yaml](file://lemes-cloud/src/devops/k8s/service/expose-port/lemes-service-dm-workflow.yaml) - [lemes-service-dm-common.yaml](file://lemes-cloud/src/devops/k8s/service/expose-port/lemes-service-dm-common.yaml) - [lemes-service-dm-device-server.yaml](file://lemes-cloud/src/devops/k8s/service/expose-port/lemes-service-dm-device-server.yaml) - [lemes-service-dm-store-server.yaml](file://lemes-cloud/src/devops/k8s/service/expose-port/lemes-service-dm-store-server.yaml) - [lemes-service-dm-workflow-server.yaml](file://lemes-cloud/src/devops/k8s/service/expose-port/lemes-service-dm-workflow-server.yaml) - [lemes-service-dm-common-server.yaml](file://lemes-cloud/src/devops/k8s/service/expose-port/lemes-service-dm-common-server.yaml)

目录

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

简介

本文件面向运维团队,提供DeviceMate项目的监控基础设施部署与配置指导,涵盖以下方面:

  • Prometheus指标采集与告警:结合Docker Compose与Kubernetes暴露端口,规划指标采集与告警规则。
  • Grafana可视化:基于Prometheus数据源配置仪表板与图表。
  • Alertmanager告警管理:规则、通知渠道与静默策略。
  • 日志收集栈:ELK/Splunk方案与日志聚合、搜索分析。
  • APM监控:SkyWalking链路追踪、性能监控与错误分析。
  • 面向DevOps的部署清单与最佳实践。

说明:当前仓库未发现Prometheus、Grafana、Alertmanager与Elasticsearch/Kibana的直接配置文件;本文基于现有Docker Compose与Kubernetes清单,给出可落地的部署建议与配置路径指引。

项目结构

DeviceMate后端采用多模块微服务架构,监控基础设施主要通过以下两类方式落地:

  • Docker Compose:集中式容器编排,便于本地或小规模环境快速部署。
  • Kubernetes:生产级编排,配合Service暴露端口与ConfigMap/Nacos等注册中心实现动态配置与服务发现。

图示来源

章节来源

核心组件

  • 指标采集与服务暴露
    • Docker Compose中各服务通过端口映射暴露运行态信息,便于后续接入Prometheus。
    • Kubernetes中通过Service暴露端口,并结合ConfigMap/Nacos实现动态配置与服务发现。
  • SkyWalking APM
    • OAP与UI分离部署,OAP负责数据处理与存储,UI提供可视化界面。
  • Splunk日志收集
    • 通过Deployment挂载主机目录,统一采集应用日志并提供Web访问。
  • 注册中心与配置中心
    • Nacos/Eureka用于服务注册与配置下发,支撑动态监控参数调整。

章节来源

架构总览

下图展示了监控基础设施在不同环境中的部署形态与交互关系:

图示来源

组件详解

Prometheus监控系统部署

  • 指标采集配置
    • Docker Compose:在Prometheus配置中增加targets,指向各服务暴露的metrics端口(如8000、8013等)。
    • Kubernetes:通过Service的端口定义与标签选择器,Prometheus以Service为target自动发现。
  • 告警规则设置
    • 在Prometheus规则文件中定义告警规则,例如CPU/内存使用率、请求延迟、错误率阈值等。
    • 结合Alertmanager进行去重、分组与静默。
  • 数据存储策略
    • 本地磁盘持久化与时间序列压缩策略,按需扩展远程存储(如Thanos/Parca)。

图示来源

章节来源

Grafana可视化配置

  • 数据源配置
    • 添加Prometheus数据源,URL指向Prometheus服务地址。
  • 仪表板设计
    • 基于服务QPS、错误率、P95/P99延迟、线程池与堆内存等维度构建仪表板。
    • 为关键业务模块(设备、库存、工单)建立专项看板。
  • 图表展示
    • 使用时序图、热力图、目标达成率等可视化形式,支持跨服务对比与趋势分析。

章节来源

Alertmanager告警管理

  • 告警规则
    • 基于Prometheus规则文件定义关键阈值与持续时间。
  • 通知渠道
    • Slack/钉钉/Webhook集成,按级别发送至值班群组或个人。
  • 静默策略
    • 通过静默窗口屏蔽计划内维护或已知问题的告警噪音。

章节来源

日志收集栈配置(ELK/Splunk)

  • Splunk部署
    • 通过Kubernetes Deployment挂载主机路径,统一采集应用日志。
    • 通过Service暴露HTTP端口,便于日志查询与分析。
  • 日志聚合与搜索
    • 建立索引策略与字段提取规则,支持按服务、时间、关键词检索。
  • 与APM联动
    • SkyWalking链路与Splunk日志结合,定位异常请求与错误堆栈。

图示来源

章节来源

APM监控配置(SkyWalking)

  • SkyWalking OAP
    • 通过ConfigMap配置集群模式、存储后端(Elasticsearch 7)、端口与资源限制。
    • 与Nacos/Eureka集成,实现服务注册与配置下发。
  • SkyWalking UI
    • 通过NodePort对外暴露,便于运维与开发人员查看链路与性能指标。
  • 链路追踪与性能监控
    • 以服务/端点/实例为维度,观察调用链耗时、错误与并发。
  • 错误分析
    • 结合日志与异常堆栈,定位慢调用与失败请求。

图示来源

章节来源

依赖关系分析

  • 服务暴露与监控
    • 各业务服务通过Kubernetes Service暴露端口,Prometheus与SkyWalking均可基于Service进行发现。
  • 注册中心与配置中心
    • Nacos/Eureka作为服务治理基础,SkyWalking与日志组件通过其获取动态配置。
  • 存储与持久化
    • SkyWalking OAP依赖Elasticsearch;Splunk通过HostPath持久化日志。

图示来源

章节来源

性能考量

  • 指标抓取频率与超时
    • 合理设置scrape_interval与scrape_timeout,避免对业务造成额外压力。
  • 告警风暴抑制
    • 使用Alertmanager的group_wait/group_interval/repeat_interval与静默窗口,降低告警风暴影响。
  • APM采样率
    • SkyWalking探针默认采样率可按环境调优,生产环境建议降低采样以减少开销。
  • 日志吞吐
    • Splunk索引策略与字段提取规则应优化,避免过多CPU与IO消耗。

故障排查指南

  • 指标不可达
    • 检查服务是否正确暴露端口,Prometheus抓取地址与端口是否一致。
    • 确认防火墙与网络策略允许访问。
  • 告警不触发
    • 校验Prometheus规则文件语法与生效情况,检查Alertmanager接收与路由配置。
  • SkyWalking链路缺失
    • 确认探针版本与Agent配置,检查OAP与Elasticsearch连通性。
  • Splunk无法采集
    • 检查HostPath挂载权限与目录是否存在,确认Service端口与容器端口映射正确。

章节来源

结论

本文件基于现有Docker Compose与Kubernetes清单,给出了DeviceMate项目的监控基础设施部署与配置建议。建议尽快补充Prometheus/Grafana/Alertmanager与Elasticsearch/Kibana的配置文件,并在各业务服务中启用Actuator/Micrometer与SkyWalking探针,形成“指标+链路+日志”的三位一体监控体系。

附录

  • 服务端口与暴露
    • Docker Compose中常见端口:8000、8013、8014、8015、80。
    • Kubernetes中通过Service暴露端口,结合NodePort/Ingress对外提供访问。
  • 配置中心与注册中心
    • Nacos/Eureka用于服务注册与配置下发,支撑动态监控参数调整。
  • APM与日志联动
    • SkyWalking链路与Splunk日志结合,提升根因分析效率。

章节来源