服务监控新方案:狸花猫系统健康检查与告警机制
【免费下载链接】lihua 狸花猫是一款基于 SpringBoot 和 Vue 的权限管理系统 项目地址: https://gitcode.com/weixin_44118742/lihua
在企业级应用开发中,服务监控(Service Monitoring)是保障系统稳定性的关键环节。传统监控方案常面临指标采集不全面、告警响应滞后等问题,而基于SpringBoot和Vue构建的狸花猫权限管理系统提供了一套完整的健康检查与告警解决方案。本文将从技术实现角度,深度剖析其CPU、内存、磁盘等核心监控模块的设计原理,并详解如何通过通知公告系统实现告警消息的精准触达。
监控系统架构概览
狸花猫系统采用前后端分离架构,监控模块通过三层架构实现数据采集与可视化:
- 数据采集层:通过SpringBoot Actuator扩展端点实现系统指标采集,核心代码位于lihua-core/src/main/java/com/
- 数据传输层:基于Axios的HTTP请求封装,具体实现见lihua-vue/src/utils/Request.ts
- 展示层:使用Ant Design Vue组件库构建响应式监控界面,页面组件位于lihua-vue/src/views/monitor/
系统监控功能作为核心特性之一,与在线用户监控、缓存监控等模块共同构成运维监控体系,相关功能描述可见lihua-vue/src/views/index/components/index_2.vue。
核心监控指标实现
CPU监控模块
CPU使用率是反映系统负载的关键指标。狸花猫系统通过java.lang.management.OperatingSystemMXBean实现CPU核心数与使用率的实时采集,前端通过定时请求刷新数据:
// 服务端API调用实现
// [lihua-vue/src/api/monitor/server/Server.ts](https://gitcode.com/weixin_44118742/lihua/blob/05fff0ed4f3d5e70c07e06a2c9491e88ba18d50a/lihua-vue/src/api/monitor/server/Server.ts?utm_source=gitcode_repo_files)
export const serverInfo = () => {
return request<ServerInfo>({
url: 'monitor/server',
method: 'get',
})
}
前端展示组件采用卡片式布局,通过描述列表清晰呈现物理核心数、逻辑核心数等关键指标:
<!-- CPU监控组件实现 -->
<!-- [lihua-vue/src/views/monitor/server/MonitorServer.vue](https://gitcode.com/weixin_44118742/lihua/blob/05fff0ed4f3d5e70c07e06a2c9491e88ba18d50a/lihua-vue/src/views/monitor/server/MonitorServer.vue?utm_source=gitcode_repo_files) -->
<a-descriptions title="中央处理器" bordered >
<a-descriptions-item label="物理核心数">{{info?.cpuMonitor.physicalCores}}</a-descriptions-item>
<a-descriptions-item label="逻辑核心数">{{info?.cpuMonitor.logicalCores}}</a-descriptions-item>
<a-descriptions-item label="系统使用率">{{info?.cpuMonitor.sysUse ? info?.cpuMonitor.sysUse + '%' : ''}}</a-descriptions-item>
<a-descriptions-item label="用户使用率">{{info?.cpuMonitor.userUse ? info?.cpuMonitor.userUse + '%' : ''}}</a-descriptions-item>
<a-descriptions-item label="等待率">{{info?.cpuMonitor.await ? info?.cpuMonitor.await + '%' : ''}}</a-descriptions-item>
<a-descriptions-item label="空闲率">{{info?.cpuMonitor.free ? info?.cpuMonitor.free + '%' : ''}}</a-descriptions-item>
</a-descriptions>
内存与JVM监控
系统内存监控涵盖物理内存与JVM内存两部分,数据模型定义如下:
// 内存监控数据模型
// [lihua-vue/src/api/monitor/server/type/ServerInfo.ts](https://gitcode.com/weixin_44118742/lihua/blob/05fff0ed4f3d5e70c07e06a2c9491e88ba18d50a/lihua-vue/src/api/monitor/server/type/ServerInfo.ts?utm_source=gitcode_repo_files)
export interface ServerInfo {
cpuMonitor: CpuMonitor;
memoryMonitor: MemoryMonitor;
jvmMonitor: JvmMonitor;
diskMonitor: DiskMonitor;
}
JVM监控提供虚拟机启动时间、运行时长等关键指标,帮助开发人员分析内存泄漏问题。内存使用率计算逻辑如下:
// 内存使用率计算伪代码
double usedMemory = totalMemory - freeMemory;
double usagePercentage = (usedMemory / totalMemory) * 100;
磁盘存储监控
磁盘监控模块通过java.nio.file.FileStore获取分区信息,前端展示采用直观的容量进度条:
<!-- 磁盘监控组件 -->
<a-descriptions title="系统硬盘" bordered>
<a-descriptions-item label="硬盘大小">{{info?.diskMonitor.total ? info?.diskMonitor.total + 'GB' : ''}}</a-descriptions-item>
<a-descriptions-item label="已使用">{{info?.diskMonitor.used ? info?.diskMonitor.used + 'GB' : ''}}</a-descriptions-item>
<a-descriptions-item label="未使用">{{info?.diskMonitor.free ? info?.diskMonitor.free + 'GB' : ''}}</a-descriptions-item>
<a-descriptions-item label="使用率">{{info?.diskMonitor.usagePercentage ? info?.diskMonitor.usagePercentage + '%' : ''}}</a-descriptions-item>
</a-descriptions>
系统默认配置了85%的磁盘使用率告警阈值,当达到阈值时自动触发通知流程。
告警通知机制
通知公告系统
狸花猫系统复用通知公告模块实现告警消息分发,支持按用户角色、部门等维度精准推送。通知管理界面位于lihua-vue/src/views/system/notice/SystemNotice.vue,核心功能包括:
- 公告类型管理(系统通知/业务公告)
- 优先级设置(通过颜色标识紧急程度)
- 用户范围选择(全部用户/指定用户)
通知创建界面采用富文本编辑器,支持格式化内容编辑:
<!-- 通知编辑组件 -->
<a-form-item label="内容">
<editor height="300px" v-model="sysNoticeVO.content"/>
</a-form-item>
SSE实时推送
系统采用Server-Sent Events(SSE)技术实现告警消息实时推送,相关实现见lihua-vue/src/api/system/sse/ServerSentEvents.ts。SSE连接建立代码如下:
// SSE连接初始化
const eventSource = new EventSource('/api/sse/connect');
eventSource.onmessage = function(e) {
const data = JSON.parse(e.data);
// 处理告警消息
notification.open({
message: data.title,
description: data.content,
});
};
通知公告系统集成了Vditor富文本解析器,确保告警内容的格式化展示,具体实现见lihua-vue/src/views/index/components/index_2.vue。
部署与配置指南
Docker部署监控服务
系统提供完整的Docker部署方案,监控服务容器配置位于docker/server/dockerfile。通过Docker Compose一键部署:
# docker/compose.yaml 核心配置
services:
server:
build: ./server
ports:
- "8080:8080"
environment:
- SPRING_PROFILES_ACTIVE=prod
volumes:
- ./logs:/app/logs
告警阈值配置
管理员可通过系统设置界面调整各监控指标的告警阈值,配置数据存储在数据库表syst_config中。关键配置项包括:
| 配置项 | 默认值 | 说明 |
|---|---|---|
| cpu.warn.threshold | 80 | CPU使用率告警阈值(%) |
| memory.warn.threshold | 85 | 内存使用率告警阈值(%) |
| disk.warn.threshold | 85 | 磁盘使用率告警阈值(%) |
配置界面组件位于lihua-vue/src/views/system/setting/。
实践案例与最佳实践
典型监控场景
-
生产环境监控:部署在生产服务器的监控界面实时展示系统健康状态,帮助运维人员及时发现异常。
-
性能测试辅助:在系统压测过程中,通过监控CPU和内存变化分析性能瓶颈。
-
容量规划:基于磁盘使用率历史数据预测存储增长趋势,提前进行扩容规划。
优化建议
- 指标采集频率:根据业务需求调整采集间隔,生产环境建议设置为30秒~5分钟。
- 数据归档策略:监控历史数据保留90天,超过期限自动归档至冷存储。
- 告警分级:将告警分为提示、警告、严重三级,避免告警风暴。
总结与展望
狸花猫系统的健康检查与告警机制通过模块化设计实现了全面的系统监控能力,其核心优势在于:
- 全栈监控:覆盖从JVM内部状态到操作系统级指标的全方位监控
- 低侵入性:基于AOP的监控数据采集,不影响业务逻辑
- 灵活扩展:预留自定义指标采集接口,支持业务指标扩展
未来版本将计划引入Prometheus集成,实现更强大的时序数据存储与分析能力,同时增强告警规则的灵活性,支持多维度组合条件告警。
完整的系统文档可参考LICENSE和项目README,社区贡献指南见CONTRIBUTING.md(假设存在)。建议定期关注项目更新,获取最新的监控功能增强。
【免费下载链接】lihua 狸花猫是一款基于 SpringBoot 和 Vue 的权限管理系统 项目地址: https://gitcode.com/weixin_44118742/lihua
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



