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) - [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)目录
简介
本文件面向运维团队,提供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用于服务注册与配置下发,支撑动态监控参数调整。
章节来源
- docker-compose.yml:1-136
- skywalking.yaml:1-146
- lemes-splunk.yaml:1-114
- lemes-nacos.yaml
- lemes-nacos-pgsql.yaml
- lemes-eureka.yaml
架构总览
下图展示了监控基础设施在不同环境中的部署形态与交互关系:
图示来源
组件详解
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持久化日志。
图示来源
- lemes-service-dm-device-server.yaml
- lemes-service-dm-store-server.yaml
- lemes-service-dm-workflow-server.yaml
- lemes-service-dm-common-server.yaml
- lemes-nacos.yaml
- lemes-eureka.yaml
章节来源
- lemes-service-dm-device-server.yaml
- lemes-service-dm-store-server.yaml
- lemes-service-dm-workflow-server.yaml
- lemes-service-dm-common-server.yaml
- lemes-nacos.yaml
- lemes-eureka.yaml
性能考量
- 指标抓取频率与超时
- 合理设置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日志结合,提升根因分析效率。
章节来源