[转帖]总结:Springboot监控Actuator相关
一、介绍
由于项目中使用的仍然是比较老旧的1.5.6版本,所以本文是基于此版本进行描述。
二、Actuator使用
ActuatorActuator是Spring Boot提供的对应用系统的监控和管理的集成功能,可以查看应用配置的详细信息,例如自动化配置信息、创建的Spring beans信息、系统环境变量的配置信以及Web请求的详细信息等。如果使用不当或者一些不经意的疏忽,可能造成信息泄露等严重的安全隐患。
Actuator是Springboot提供的用来对应用系统进行自省和监控的功能模块,借助于Actuator开发者可以很方便地对应用系统某些监控指标进行查看、统计等。
Actuator 的核心是端点 Endpoint,它用来监视应用程序及交互,spring-boot-actuator 中已经内置了非常多的 Endpoint(health、info、beans、metrics、httptrace、shutdown等等),同时也允许我们自己扩展自己的 Endpoints。每个 Endpoint 都可以启用和禁用。要远程访问 Endpoint,还必须通过 JMX 或 HTTP 进行暴露,大部分应用选择HTTP。
Actuator应用监控使用只需要添加spring-boot-starter-actuator依赖即可,如下:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
如果请求接口不做任何安全限制,会有很大的安全隐患,审计也不过关。
一般我们的配置方式如下:
#先禁用所有endpoint
endpoints.enabled = false
#按需要开启部分endpoint
endpoints.metrics.enabled = true
endpoints.dump.enabled= true
另外也可以引入spring-boot-starter-security依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
在application.properties中指定actuator的端口以及开启security功能,配置访问权限验证,这时再访问actuator功能时就会弹出登录窗口,需要输入账号密码验证后才允许访问。
management.port=8099
management.security.enabled=true
security.user.name=admin
security.user.password=admin
安全建议
在使用Actuator时,不正确的使用或者一些不经意的疏忽,就会造成严重的信息泄露等安全隐患。在代码审计时如果是springboot项目并且遇到actuator依赖,则有必要对安全依赖及配置进行复查。也可作为一条规则添加到黑盒扫描器中进一步把控。
安全的做法是一定要引入security依赖,打开安全限制并进行身份验证。同时设置单独的Actuator管理端口并配置不对外网开放。
三、2.x与1.x
需要注意的是,Spring Boot 2.0 相对于上个版本, Actuator 发生很多变化,keys 的配置改变如下:

四、源码相关
参考:Springboot Actuator之七:actuator 中原生endpoint源码解析1 - 走看看
五、查看所有可配置的endpoints
Actuator监控分成两类:原生端点和用户自定义扩展端点,原生的主要有:
| 路径 | 描述 |
| /loggers |
查看所有的日志级别,不同包的级别。默认的日志级别为 另外,可动态修改日志的打印级别 |
| /shutdown |
关闭应用程序,要求endpoints.shutdown.enabled设置为true 需要关闭,否则可否以远程关闭服务 |
| /env |
获取全部环境属性,如操作系统信息(什么操作系统,什么版本等),虚拟机信息(名称、版本、厂商等),java版本,类路径,用户信息,系统域信息(容易暴露公司信息),第三方服务信息(如数据库连接地址,redis地址等,很敏感),IP地址(很敏感)。 总之一句话,env绝对要关闭 |
| /configprops |
描述配置属性(包含默认值)如何注入Bean。 容易暴露ip地址,eureka地址,endpoints哪些可访问等 需要关闭,否则可能基于此接口间接获取到其它的信息 |
| /heapdump | 访问/heapdump 路径,返回 GZip 压缩 hprof 堆转储文件。在 Android studio 打开,会泄露站点内存信息,很多时候会包含后台用户的账号密码(包含漏洞的图片暂时没得,大家记住思路就好了..),通过泄露的账号密码,然后进入后台一番轰炸也不错的。 |
| /trace |
通过访问/trace路径,可获取用户认证字段信息,如token,cookie 等重要权限验证信息 需要关闭,否则可能暴露用户的token或cookie等权限验证信息 |
| /dump | 获取线程活动的快照 |
| /info |
获取应用程序的定制信息,这些信息由info打头的属性提供 一般不配置为空 |
| /health | 报告应用程序的健康指标,这些值由HealthIndicator的实现类提供 |
| /mappings |
描述全部的URI路径,以及它们和控制器(包含Actuator端点)的映射关系 非必要也不要打开,黑客可攻击写相关的接口(如果权限验证不当就惨了) |
| /metrics | 报告各种应用程序度量信息,比如内存用量和HTTP请求计数 |
| /autoconfig | 提供了一份自动配置报告,记录哪些自动配置条件通过了,哪些没通过 |
| /beans | 描述应用程序上下文里全部的Bean,以及它们的关系 |
六、prometheus对应的endpoint
endpoints.prometheus.enabled=true
endpoint是可以自定义的,springboot对接prometheus用的就是自定义endpoint的原理,如下:

因此我们同样可以用正常endpoint开启和关闭的方式进行配置。
注意,如果我们配置了关闭endpoint,则需要显示配置去打开prometheus这个endpoint,配置方式如下:

七、动态修改日志级别
如下案例所示:
将com.iqiyi.hubble.auth.service.impl.UserAuthResServiceImpl类的日志级别修改成DEBUG

参考:
[转帖]总结:Springboot监控Actuator相关的更多相关文章
- springboot 监控 Actuator
springboot 提供了对项目的监控功能. 1.首先添加依赖包 <!-- https://mvnrepository.com/artifact/org.springframework.boo ...
- SpringBoot系列: Actuator监控
Sprng Boot 2 actuator变动加大, 网上很多资料都都已经过期. ============================配置项============================ ...
- SpringBoot集成Actuator监控管理
1.说明 本文详细介绍Spring Boot集成Actuator监控管理的方法, 基于已经创建好的Spring Boot工程, 然后引入Actuator依赖, 介绍监控管理相关功能的使用. Sprin ...
- Springboot监控之一:SpringBoot四大神器之Actuator
介绍 Spring Boot有四大神器,分别是auto-configuration.starters.cli.actuator,本文主要讲actuator.actuator是spring boot提供 ...
- 【spring cloud】【spring boot】网管服务-->配置文件添加endpoints.enabled = false,SpringBoot应用监控Actuator使用的安全隐患
转载:https://xz.aliyun.com/t/2233 ==================================================================== ...
- Springboot监控之二:Spring Boot Admin对Springboot服务进行监控
概述 Spring Boot 监控核心是 spring-boot-starter-actuator 依赖,增加依赖后, Spring Boot 会默认配置一些通用的监控,比如 jvm 监控.类加载.健 ...
- springboot集成Actuator
Actuator监控端点,主要用来监控与管理. 原生端点主要分为三大类:应用配置类.度量指标类.操作控制类. 应用配置类:获取应用程序中加载的配置.环境变量.自动化配置报告等与SpringBoot应用 ...
- SpringBoot 之Actuator.
一.Actuator 介绍 Actuator 是 SpringBoot 项目中一个非常强大一个功能,有助于对应用程序进行监视和管理,通过 restful api 请求来监管.审计.收集应用的运行情况. ...
- SpringBoot 开启 Actuator
在生产环境中,需要实时或定期监控服务的可用性.spring-boot 的actuator(监控)功能提供了很多监控所需的接口.简单的配置和使用如下: 1.引入依赖: <dependency> ...
- springboot配置server相关配置&整合模板引擎Freemarker、thymeleaf&thymeleaf基本用法&thymeleaf 获取项目路径 contextPath 与取session中信息
1.Springboot配置server相关配置(包括默认tomcat的相关配置) 下面的配置也都是模板,需要的时候在application.properties配置即可 ############## ...
随机推荐
- 云小课|GaussDB(DWS)数据存储尽在掌控,冷热数据切换自如
阅识风云是华为云信息大咖,擅长将复杂信息多元化呈现,其出品的一张图(云图说).深入浅出的博文(云小课)或短视频(云视厅)总有一款能让您快速上手华为云.更多精彩内容请单击此处. 摘要: GaussDB( ...
- 8个方法管理 GitHub 用户权限
如同世界正在经历的疫情,由于网络攻击的大幅增加,许多公司也遭受着"网络疫情",保障代码安全迫在眉睫.在之前的文章中我们了解了安全使用 GitHub 的21条最佳实践.阅读本文,将带 ...
- allowedOrigins cannot contain the special value "*"
Spring Boot的版本高于 2.4以后 ,原来的配置已经不适合目前的版本 将代码中的allowedOrigins改为allowedOriginPatterns @Configuration pu ...
- OLAP引擎也能实现高性能向量检索,据说QPS高于milvus!
更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 随着LLM技术应用及落地,数据库需要提高向量分析以及AI支持能力,向量数据库及向量检索等能力"异军突起& ...
- WPF 组织机构摄像机树 全量加载 大数据量 分页加载摄像机节点
WPF 组织机构摄像机树 全量加载 大数据量 分页加载摄像机节点 完整代码: https://gitee.com/s0611163/WpfTreeDemo 性能: 8000组织机构20万摄像机,全量加 ...
- SpringBoot 项目实战 | 瑞吉外卖 Day05
该系列将记录一份完整的实战项目的完成过程,该篇属于第五天 案例来自B站黑马程序员Java项目实战<瑞吉外卖>,请结合课程资料阅读以下内容 该篇我们将完成以下内容: 新增套餐 套餐信息分页查 ...
- Flask的简单学习
简介 Flask是一个非常小的PythonWeb框架,被称为微型框架:只提供了一个稳健的核心,其他功能全部是通过扩展实现的:意思就是我们可以根据项目的需要量身定制,也意味着我们需要学习各种扩展库的使用 ...
- mysql8.0环境搭建linux
本文主要介绍如何在linux环境(64位)下搭建mysql8.0的数据库环境 1.到指定目录下下载安装包 [root@minio3 ~]# cd /usr/local/src [root@minio3 ...
- <vue 路由 8、keep-alive的使用>
一. 知识点 1.什么是keep-alive? keep-alive是Vue.js的一个内置组件. 包裹动态组件时,会缓存不活动的组件实例,而不是销毁它们.它自身不会渲染一个 DOM 元素,也 ...
- 【vue基础篇】一看就懂的vue环境变量配置
相关播客地址: https://juejin.cn/post/6844903859878363149 https://juejin.cn/post/6844903682178285575 视频学习资料 ...