RuoYi-Vue系统监控实战:CPU、内存、缓存全方位监控

RuoYi-Vue系统监控实战:CPU、内存、缓存全方位监控

【免费下载链接】RuoYi-Vue :tada: (RuoYi)官方仓库 基于SpringBoot,Spring Security,JWT,Vue & Element 的前后端分离权限管理系统,同时提供了 Vue3 的版本 【免费下载链接】RuoYi-Vue 项目地址: https://gitcode.com/gh_mirrors/ruoyiv/RuoYi-Vue

RuoYi-Vue是基于SpringBoot、Spring Security、JWT、Vue & Element的前后端分离权限管理系统,提供了完善的系统监控功能,帮助管理员实时掌握CPU、内存、缓存等关键指标的运行状态。本文将详细介绍如何利用RuoYi-Vue的监控模块实现对系统资源的全方位监控与管理。

系统监控核心模块概述

RuoYi-Vue的监控功能主要集中在ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor目录下,包含两大核心控制器:

  • ServerController:负责服务器硬件资源监控,包括CPU、内存、磁盘等信息采集
  • CacheController:专注于Redis缓存监控,提供缓存键管理、统计分析和清理功能

这两个控制器通过RESTful API对外提供服务,前端通过Vue组件实现数据可视化展示,形成完整的监控闭环。

服务器资源监控实现

服务器监控模块通过ServerController实现,核心代码位于ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/ServerController.java。该控制器提供了一个简洁但功能强大的接口:

@PreAuthorize("@ss.hasPermi('monitor:server:list')")
@GetMapping()
public AjaxResult getInfo() throws Exception {
    Server server = new Server();
    server.copyTo();
    return AjaxResult.success(server);
}

这个接口会收集服务器的全方位信息,包括:

  • CPU信息:使用率、核心数、型号等
  • 内存信息:总内存、已用内存、可用内存、使用率
  • 磁盘信息:分区情况、已用空间、可用空间
  • 系统信息:操作系统版本、运行时间、JVM信息

RuoYi-Vue登录页面背景

图:RuoYi-Vue系统架构支持全方位监控数据采集

Redis缓存监控功能详解

缓存监控由CacheController实现,位于ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/CacheController.java。该控制器提供了丰富的缓存管理功能:

1. 缓存统计信息

通过getInfo()方法获取Redis整体状态:

@GetMapping()
public AjaxResult getInfo() throws Exception {
    Properties info = (Properties) redisTemplate.execute((RedisCallback<Object>) connection -> connection.info());
    Properties commandStats = (Properties) redisTemplate.execute((RedisCallback<Object>) connection -> connection.info("commandstats"));
    Object dbSize = redisTemplate.execute((RedisCallback<Object>) connection -> connection.dbSize());
    // 处理并返回统计数据
}

该接口返回Redis服务器信息、数据库大小和命令统计数据,帮助管理员了解缓存服务器的整体运行状况。

2. 缓存键管理

系统预设了多种缓存类型,如用户信息、配置信息、数据字典等:

private final static List<SysCache> caches = new ArrayList<SysCache>();
{
    caches.add(new SysCache(CacheConstants.LOGIN_TOKEN_KEY, "用户信息"));
    caches.add(new SysCache(CacheConstants.SYS_CONFIG_KEY, "配置信息"));
    caches.add(new SysCache(CacheConstants.SYS_DICT_KEY, "数据字典"));
    caches.add(new SysCache(CacheConstants.CAPTCHA_CODE_KEY, "验证码"));
    // 更多缓存类型...
}

通过getCacheKeys()getCacheValue()方法,管理员可以查看指定类型的缓存键和对应的值,实现缓存内容的透明化管理。

3. 缓存清理功能

CacheController提供了三级缓存清理功能:

  • 清理指定类型缓存:clearCacheName()
  • 清理特定缓存键:clearCacheKey()
  • 清理所有缓存:clearCacheAll()

这些功能可以帮助管理员在系统运行异常时快速清理缓存,恢复系统正常运行。

监控数据可视化展示

RuoYi-Vue的前端监控页面位于ruoyi-ui/src/views/monitor/server/index.vue,通过调用后端API获取数据,并使用Chart.js等可视化库将监控数据以图表形式展示。管理员可以直观地看到:

  • CPU使用率趋势图
  • 内存使用情况饼图
  • 磁盘空间分布
  • 缓存命中情况统计

RuoYi-Vue支付页面示例

图:RuoYi-Vue系统监控数据可视化示例界面

监控权限控制

RuoYi-Vue的监控功能实现了严格的权限控制,通过@PreAuthorize注解确保只有授权用户才能访问监控接口:

@PreAuthorize("@ss.hasPermi('monitor:server:list')")
@GetMapping()
public AjaxResult getInfo() throws Exception { ... }

权限标识monitor:server:listmonitor:cache:list分别控制服务器监控和缓存监控的访问权限,管理员可以通过系统角色管理功能灵活配置监控权限。

总结与最佳实践

RuoYi-Vue提供的系统监控功能为管理员提供了全面的系统运行状态视图。在实际使用中,建议:

  1. 定期查看服务器监控数据,及时发现资源瓶颈
  2. 监控缓存命中率,优化缓存策略
  3. 谨慎使用全量缓存清理功能,避免影响系统运行
  4. 根据业务需求配置监控告警,及时响应异常情况

通过合理利用这些监控工具,管理员可以确保RuoYi-Vue系统的稳定运行,提升系统可靠性和用户体验。

系统监控模块的完整实现可以参考以下代码路径:

  • 服务器监控控制器:ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/ServerController.java
  • 缓存监控控制器:ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/CacheController.java
  • 监控前端页面:ruoyi-ui/src/views/monitor/server/index.vue

【免费下载链接】RuoYi-Vue :tada: (RuoYi)官方仓库 基于SpringBoot,Spring Security,JWT,Vue & Element 的前后端分离权限管理系统,同时提供了 Vue3 的版本 【免费下载链接】RuoYi-Vue 项目地址: https://gitcode.com/gh_mirrors/ruoyiv/RuoYi-Vue

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值