发布时间:2026/8/25 4:14:29
30-Linux学习之旅之Actuator监控 Linux学习之旅之Actuator监控一、Actuator在若依中的配置1、添加依赖与修改配置[rootruoyi-java01 RuoYi-Vue]# pwd/root/RuoYi-Vue#添加依赖[rootruoyi-java01 RuoYi-Vue]# vim ruoyi-admin/pom.xml[rootruoyi-java01 RuoYi-Vue]# cat ruoyi-admin/pom.xmldependenciesdependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-actuator/artifactId/dependency!-- spring-boot-devtools --#放行鉴权[rootruoyi-java01 RuoYi-Vue]# vim ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java[rootruoyi-java01 RuoYi-Vue]# cat ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java// 除上面外的所有请求全部需要鉴权认证 .requestMatchers(/actuator/**).permitAll().anyRequest().authenticated();})#配置application-prod.yml外部文件[rootruoyi-java01 RuoYi-Vue]# vim /opt/ruoyi-vue/config/application-prod.yml[rootruoyi-java01 RuoYi-Vue]# cat /opt/ruoyi-vue/config/application-prod.ymlmanagement: endpoints: web: exposure: include:*# 暴露所有端点endpoint: health: show-details: always# 显示详细信息[rootruoyi-java01 RuoYi-Vue]#参数配置项作用说明management.endpoints.web.exposure.include*暴露所有 actuator 端点也可以写health,info,metrics,heapdump只开放指定端点*代表全部开放management.endpoints.web.base-path/actuator(默认)actuator 访问 URL 前缀改成/manage则地址变为/manage/health规避 RuoYi 静态资源拦截management.endpoint.health.show-detailsalwayshealth 端点展示完整组件详情db、redis、磁盘等状态always全部展示when-authorized认证后展示never只返回 UP/DOWNmanagement.endpoint.metrics.enabledtrue开启 metrics 指标采集JVM 内存、GC、线程、请求 QPS 等接口/actuator/metricsmanagement.endpoint.heapdump.enabledtrue开启堆转储端点接口/actuator/heapdump访问直接下载 hprof 堆快照文件生产注意安全不要对外网开放2、重新打包并重启[rootruoyi-java01 RuoYi-Vue]# mvn clean package -DskipTests -U..........................[INFO]Total time:38.883s[INFO]Finished at:2026-08-19T02:32:06-04:00[INFO]------------------------------------------------------------------------[rootruoyi-java01 RuoYi-Vue]# cp ruoyi-admin/target/ruoyi-admin.jar /opt/ruoyi-vue/app/cp: overwrite/opt/ruoyi-vue/app/ruoyi-admin.jar? y[rootruoyi-java01 RuoYi-Vue]# systemctl restart ruoyi-vue.service(failed reverse-i-search)stst: mvn clean package -DskipTe^Cs-U(failed reverse-i-search): mvn clean deploy -DskipTe^Cs-U(failed reverse-i-search): mvn clean deploy -DskipTe^Cs-U[rootruoyi-java01 RuoYi-Vue]# systemctl status ruoyi-vue.service● ruoyi-vue.service - RuoYi Vue Backend Service Loaded: loaded(/etc/systemd/system/ruoyi-vue.service;enabled;preset: disabled)Active: active(running)since Wed2026-08-19 03:03:37 EDT;1min 45s ago Main PID:4823(java)Tasks:136(limit:4388)Memory:459.4M(peak:490.4M)CPU: 1min14.255s CGroup: /system.slice/ruoyi-vue.service └─4823 /usr/bin/java-Xms512m-Xmx1024m-XX:HeapDumpOnOutOfMemoryError-XX:HeapDumpPath/opt/ruoyi-vue/logs/heapdump.hprof-Dfile.encodingAug1903:04:19 ruoyi-java01 java[4823]:(♥◠‿◠) 若依启动成功 ლ(´ڡლ) Aug1903:04:19 ruoyi-java01 java[4823]: .-------. ____ __ Aug1903:04:19 ruoyi-java01 java[4823]:|_ _\\\/ / Aug1903:04:19 ruoyi-java01 java[4823]:|( ) | \ _. / Aug1903:04:19 ruoyi-java01 java[4823]:|(_ o _)/ _()_. Aug 19 03:04:19 ruoyi-java01 java[4823]: | (_,_).__ ___(_ o _) Aug 19 03:04:19 ruoyi-java01 java[4823]: | |\ \ | || |(_,_)Aug1903:04:19 ruoyi-java01 java[4823]:||\ /|- / Aug 19 03:04:19 ruoyi-java01 java[4823]: | | \ / \ / Aug 19 03:04:19 ruoyi-java01 java[4823]: - - -..-3、验证[rootruoyi-java01 RuoYi-Vue]# curl http://localhost:8080/actuator/health{components:{db:{components:{dynamicDataSource:{components:{MASTER:{details:{database:MySQL,validationQuery:isValid()},status:UP }},status:UP},masterDataSource:{details:{database:MySQL,validationQuery:isValid()},status:UP}},status:UP},diskSpace:{details:{total:18182307840,free:14887870464,threshold:10485760,path:/opt/ruoyi-vue/.,exists:true},status:UP},livenessState:{status:UP},pi ng:{status:UP},readinessState:{status:UP},redis:{details:{version:6.2.22},status:UP},ssl:{details:{expiringChains:[],invali[rootruoyi-java01 RuoYi-Vue]#二、核心端点详解1、/health——健康检查[rootruoyi-java01 RuoYi-Vue]# curl http://localhost:8080/actuator/health | jq% Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed100706070600207640--:--:-- --:--:-- --:--:--21393{components:{db:{components:{dynamicDataSource:{components:{MASTER:{details:{database:MySQL,validationQuery:isValid()},status:UP}},status:UP},masterDataSource:{details:{database:MySQL,validationQuery:isValid()},status:UP}},status:UP},diskSpace:{details:{total:18182307840,free:14887870464,threshold:10485760,path:/opt/ruoyi-vue/.,exists:true},status:UP},livenessState:{status:UP},ping:{status:UP},readinessState:{status:UP},redis:{details:{version:6.2.22},status:UP},ssl:{details:{expiringChains:[],invalidChains:[],validChains:[]},status:UP}},groups:[liveness,readiness],status:UP}[rootruoyi-java01 RuoYi-Vue]#2、/metrics——性能指标[rootruoyi-java01 RuoYi-Vue]# url -s http://localhost:8080/actuator/metrics |jq-bash: url:commandnot found[rootruoyi-java01 RuoYi-Vue]# curl -s http://localhost:8080/actuator/metrics |jq{names:[application.ready.time,application.started.time,disk.free,disk.total,executor.active,executor.completed,executor.pool.core,executor.pool.max,executor.pool.size,executor.queue.remaining,executor.queued,http.server.requests,http.server.requests.active,jvm.buffer.count,jvm.buffer.memory.used,jvm.buffer.total.capacity,jvm.classes.loaded,jvm.classes.loaded.count,jvm.classes.unloaded,jvm.compilation.time,jvm.gc.live.data.size,jvm.gc.max.data.size,jvm.gc.memory.allocated,jvm.gc.memory.promoted,jvm.gc.overhead,jvm.gc.pause,jvm.info,jvm.memory.committed,jvm.memory.max,jvm.memory.usage.after.gc,jvm.memory.used,jvm.threads.daemon,jvm.threads.live,jvm.threads.peak,jvm.threads.started,jvm.threads.states,lettuce,lettuce.active,logback.events,process.cpu.time,process.cpu.usage,process.files.max,process.files.open,process.start.time,process.uptime,spring.security.authorizations,spring.security.authorizations.active,spring.security.filterchains,spring.security.filterchains.JwtAuthenticationTokenFilter.after,spring.security.filterchains.JwtAuthenticationTokenFilter.before,spring.security.filterchains.access.exceptions.after,spring.security.filterchains.access.exceptions.before,spring.security.filterchains.active,spring.security.filterchains.authentication.anonymous.after,spring.security.filterchains.authentication.anonymous.before,spring.security.filterchains.authorization.after,spring.security.filterchains.authorization.before,spring.security.filterchains.context.async.after,spring.security.filterchains.context.async.before,spring.security.filterchains.context.holder.after,spring.security.filterchains.context.holder.before,spring.security.filterchains.context.servlet.after,spring.security.filterchains.context.servlet.before,spring.security.filterchains.cors.after,spring.security.filterchains.cors.before,spring.security.filterchains.header.after,spring.security.filterchains.header.before,spring.security.filterchains.logout.after,spring.security.filterchains.logout.before,spring.security.filterchains.requestcache.after,spring.security.filterchains.requestcache.before,spring.security.filterchains.session.management.after,spring.security.filterchains.session.management.before,spring.security.filterchains.session.urlencoding.after,spring.security.filterchains.session.urlencoding.before,spring.security.http.secured.requests,spring.security.http.secured.requests.active,system.cpu.count,system.cpu.usage,system.load.average.1m,tomcat.sessions.active.current,tomcat.sessions.active.max,tomcat.sessions.alive.max,tomcat.sessions.created,tomcat.sessions.expired,tomcat.sessions.rejected]}3、/heapdump——堆内存快照[rootruoyi-java01 RuoYi-Vue]# curl -o /tmp/heap.hprof http://localhost:8080/actuator/heapdump% Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed10091100910021160--:--:-- --:--:-- --:--:--21664、/loggers——动态日志[rootruoyi-java01 RuoYi-Vue]# curl http://localhost:8080/actuator/loggers/com.ruoyi{configuredLevel:INFO,effectiveLevel:INFO}端点 URL作用说明/actuator/health健康检查db、redis、磁盘、应用存活状态返回 UP/DOWN监控告警核心接口/actuator/info应用基础信息版本、项目名称、自定义 info 信息默认返回空/actuator/metrics指标总览JVM 内存、GC、线程、http 请求、Tomcat 连接池等性能指标/actuator/metrics/jvm.memory.usedJVM 已使用内存获取堆 / 非堆内存占用数值/actuator/metrics/http.server.requestshttp 请求统计请求量、响应耗时、错误码分布/actuator/heapdump下载堆快照返回 hprof 文件排查 OOM高危禁止公网访问/actuator/env环境变量读取系统环境、yml 配置参数敏感生产建议关闭/actuator/configprops配置属性打印所有 Spring bean 绑定配置项敏感/actuator/loggers日志级别查看 / 动态修改不用重启在线调整包日志级别debug/info/actuator/logfile直接下载日志文件需要配置 logging.file.name生产慎用/actuator/shutdown远程关闭应用默认关闭开启可 POST 请求直接停服务高危/actuator/prometheusprometheus 指标输出对接监控系统 Prometheus 采集 metrics 数据

相关新闻

2026/8/25 4:14:29

AI Agent记忆系统Mem0实战:从原理到部署的完整指南

大家好,我是专注于技术实战分享的博主。在探索 AI Agent 开发的过程中,你是否遇到过这样的困扰:Agent 在对话中总是“健忘”,无法记住上下文的关键信息,导致每次交互都像是初次见面?或者,当你尝…

2026/8/25 4:14:29

SMUDebugTool:锐龙超频与SMU调试工具

SMUDebugTool:锐龙超频与SMU调试工具 【免费下载链接】SMUDebugTool A dedicated tool to help write/read various parameters of Ryzen-based systems, such as manual overclock, SMU, PCI, CPUID, MSR and Power Table. 项目地址: https://gitcode.com/gh_mir…

2026/8/25 4:14:29

会员权益双重校验:下单与播放入口的防漏洞方案

一个知识付费平台最致命的信任危机,往往不是课程内容不够好,而是用户明明付了钱,却在学习时被拒之门外;或者讲师看到收益账本上的数字,却无法追溯到每一笔订单的来源。这些问题表面上是个别接口的 bug,本质…

2026/8/25 6:39:37

TencentOS AI运维实践:从命令行到自然语言的范式革命

1. 从“敲命令”到“说人话”:运维范式的一次静默革命如果你是一个运维工程师,或者哪怕只是稍微接触过服务器管理,大概都对这样的场景不陌生:深夜,监控告警突然响起,CPU使用率飙升,你需要立刻登…

2026/8/25 6:39:37

ComfyUI AI漫剧制作整合包:一键部署与全流程工作流指南

这次我们来看一个针对 ComfyUI 新手的 AI 漫剧制作全流程整合包。这个项目并非一个全新的 AI 模型,而是一套由资深创作者花费大量时间整理、打包的 ComfyUI 工作流解决方案,旨在将复杂的 AI 漫画、短剧(漫剧)生成过程标准化和自动…

2026/8/25 6:39:37

物联网后端Java开发核心技术与面试要点解析

1. 物联网后端Java面试核心考察点解析物联网(IoT)作为新一代信息技术的重要组成部分,正在深刻改变着传统行业的运营模式。在这个背景下,物联网后端开发岗位对Java工程师的要求也呈现出鲜明的行业特色。根据最新行业调研数据显示&a…

2026/8/25 6:39:37

音乐与几何的奇妙碰撞:音乐万花尺带来可自定义的趣味体验

音乐与几何交织的创意玩法音乐万花尺将小时候令人痴迷的万花尺与生成式音乐创作相结合,在浏览器标签页中呈现出独特魅力。一组点依据数学方程在屏幕上移动,绘制出长短辐圆内旋轮线和长短辐圆外旋轮线,穿过同心圆环时触发特定音符,…

2026/8/25 6:34:37

Grasp协议:构建跨工具代码协作的标准化桥梁

你好,我是专注于技术分享的博主。在团队协作开发中,你是否遇到过这样的困境:不同成员使用的IDE插件、代码分析工具或AI助手(如Cursor)各自为政,数据无法互通,导致信息孤岛和重复劳动&#xff1f…

2026/8/25 1:04:19

[光学原理与应用-521]:对光的错误理解与纠偏

首先光是一种能量的载体和形态,宏观上观察到的光是由无数个微观的光量子组成的,每个光子在产生的瞬间,其在真空的空间中以确定不变的速度沿着一个初始的方向一直向前,在微观层面,每个光量子的运动轨迹是以波函数所展现…

2026/8/24 1:12:32

SIP通话转接原理与REFER方法实战解析

1. 通话转接不是“挂断再拨号”,而是SIP会话的动态重定向你有没有遇到过这样的场景:客服坐席A正在和客户通电话,突然需要把这通对话无缝转给专家坐席B,客户完全感知不到中间的断连——既没听到忙音,也没被要求重新拨号…

2026/8/24 8:17:29

Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

1. 为什么选择Kolla-ansible来部署单节点OpenStack?如果你正在寻找一种能把OpenStack从“概念”快速变成“可用的实验环境”的方法,那么Kolla-ansible几乎是当前最主流、最省心的选择。我见过太多人卡在手动编译依赖、配置服务、处理版本冲突的泥潭里&am…

2026/8/25 0:04:14

三步把QQ空间历史说说导出到本地:GetQzonehistory 极简指南

三步把QQ空间历史说说导出到本地:GetQzonehistory 极简指南 【免费下载链接】GetQzonehistory 获取QQ空间发布的历史说说 项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory Meta Description:GetQzonehistory 是一个QQ空间历史说…

2026/8/25 0:04:14

洛谷 P7912:[CSP-J 2021 T4] 小熊的果篮 ← 双向链表

【题目来源】 https://www.luogu.com.cn/problem/P7912 【题目描述】 小熊的水果店里摆放着一排 n 个水果。每个水果只可能是苹果或桔子,从左到右依次用正整数 1,2,…,n 编号。连续排在一起的同一种水果称为一个“块”。小熊要把这一排水果挑到若干个果篮里&#x…

2026/8/24 13:42:17

实测才敢推 AI论文网站 2026最新测评与推荐

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。一、综…

2026/8/24 18:13:48

2026必备!AI论文网站测评:最新推荐与深度对比

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

2026/8/25 1:08:14

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文写作工具,覆盖选题构思、文献整理、内容生成、格式排版等核心场景,真正帮你高效搞定论文难题。 一、全流程王者:一站式搞定论文全链路(一天定稿首…