30-Linux学习之旅之Actuator监控

发布时间:2026/10/22 23:04:26

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/10/22 21:43:01

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

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

2026/10/21 16:52:13

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/10/21 23:01:11

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

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

2026/10/22 23:02:09

langchain 构建智能体 Agent

1.理解 Agent 1.1 什么是 Agent? 在大模型应用开发中,智能体通常指一种以大语言模型为推理与决策核心,结合记忆 、 工具调用与环境交互能力,能够进行规划决策并执行复杂任务以达成目标的软件系统 Agent 的关键能力: …

2026/10/22 23:02:09

系统编程:标准IO

一.标准io的定义(IO input output) 1.I:键盘是标准输入设备,默认输入就是指键盘 2.dev/inputO: 显示器是标准输出设备 ,默认输出就是指显示器Linux操作系统当中IO都是对文件的操作。 3.输入输出是以计算机中…

2026/10/22 23:02:09

第十三篇:《AI Agent 可观测性与评估:追踪、调试与质量衡量》

在上一篇文章中,我们为 Agent 装上了安全护栏——输入净化、身份隔离、工具权限和输出过滤。但安全护栏只能“拦住”已知的威胁,真正要回答“Agent 为什么失败”以及“它到底变好了还是变坏了”,需要的是可观测性与评估。传统 APM 追踪的是确…

2026/10/22 23:02:09

当 Agent 学会出价:市场机制 MPT 如何取代中央编排器

当 Agent 学会出价:市场机制 MPT 如何取代中央编排器 TL;DR 要点现有多智能体系统的编排器(LangGraph 的图、AutoGen 的对话轮转)都是人工设计的固定结构——个体能力训练和集体组织方式是两个割裂的问题。MPT(Market-based Post-…

2026/10/22 22:57:08

计网学习笔记-VLAN

摘要 本文系统介绍了 VLAN(虚拟局域网)的原理与配置方法。首先阐述了 VLAN 产生的背景,即交换机只能隔离冲突域而无法隔离广播域,导致广播流量泛滥的问题;随后详细讲解了 VLAN 的作用、好处、帧格式(802.1…

2026/10/22 11:29:28

金融AI落地指南:从调研报告到技术选型与工程实践

简介:这份PDF报告聚焦2025年金融服务业中国AI现状与趋势,面向金融科技从业者、AI战略规划人员及关注行业数字化转型的研究者,帮助读者把握生成式AI在银行、支付、交易等场景中的落地路径与投资方向。资源包内含1个PDF文件,大小约1…

2026/10/22 0:01:49

电商智能运营体系从0到1:架构设计、落地步骤与避坑指南

前两年我们团队接了一个电商平台的运营中台项目,目标很直白:把过去靠运营拍脑袋做的选品、定价、发券、推活动这些事,逐步用数据算法和自动化流程代替。项目名字内部就叫“电商智能运营体系”。最近有不少朋友问我当时是怎么设计的、踩过哪些…

2026/10/22 0:01:49

若依框架AI代码生成不稳定?用Agent Skill三层结构+五步法搞定

最近一段时间,我一直想把后台管理系统里那些机械重复的增删改查代码交给AI去写。框架用的是若依,按理说这类业务代码模式非常固定,应该是AI最擅长的事情。可真试下来却不是那么回事——你让AI生成一个用户管理模块,它给出的Contro…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑