30-Linux学习之旅之Actuator监控

发布时间:2026/8/25 4:14: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 数据