springboot 监控 Actuator 的设置

本文介绍了SpringBoot的Actuator模块,用于监控和管理微服务的生产环境。通过添加依赖并配置暴露的端点,可以查看内存、线程、日志等信息,并通过HTTP请求进行监管。Actuator返回JSON数据,可配合AdminUi提供可视化界面。建议使用SpringBoot 2.0.5版本,以获取更全面的信息。文章还详细讲解了如何配置端点,包括暴露和隐藏特定端点,以及调整Actuator的路径和端口。

springboot 监控 Actuator

监控中心是针对微服务期间看,服务器内存变化(对内存,线程,日志管理等),检测服务配置连接池地址是否可用(模拟访问,懒加载),统计现在有多个bean(是Spring容器中的bean),统计SpringMVC@RequestMapping(统计http接口).
使用Actuator来查看这些信息,它是没有界面的返回的是json格式的数据
AdminUi底层使用的是Actuator实现的,只不过给它加了个可视化界面
监控中心应用场景:生产环境
使用它的原因是,它是springboot的一个附加功能,可帮助你在应用程序生产环境时监控和管理应用程序.可用使用Http的各种请求来监管,审计,收集应用的运行情况,特别对于微服务管理十分有意义.
建议使用springboot2.0.5因为它里面返回的信息更加全面.

springboot 提供了对项目的监控功能。

1.首先添加依赖包

<!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-actuator -->
<dependency>
     <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-actuator</artifactId>
   <version>2.1.3.RELEASE</version>
</dependency>

2.浏览器访问

http://127.0.0.1:8080/actuator/health 访问项目监控需要加前缀 /actuator
在这里插入图片描述
在这里插入图片描述

因为actuator默认只支持端点 /health、/info 所以访问 /env 会出现404页面。

3.配置端点
在application.properties中配置端点,

暴露部分端点

management.endpoints.web.exposure.include=info,health,beans,env

暴露所有端点

management.endpoints.web.exposure.include=*

不暴露beans端点

management.endpoints.web.exposure.exclude=beans

在上述配置中,首先使用 management.endpoints.web.exposure.include 暴露所有的端点,接着使用management.endpoints.web.exposure.exclud 排除 en 端点,这样就能够暴露除 env 外的所有 ctuator端点了。

4.端点说明
在这里插入图片描述

5.端点其他配置

# Actuator 管理端口
management.server.port=8000
#暴露 有端
management.endpoints.web.exposure.include =女
#默认情况下 有端点都不启用,此时需要按需启用端点
management.endpoints.enabled-by-default=false 
#启用端点 info
management.endpoint.info.enabled=true 
#启用端点 beans
management.endpoint.beans.enabled=true 
#启用端点 configprops 
management.endpoint.configprops.enabled=true 
#启用端点 env
management.endpont.env.enabled=true
#启用端点 health
management.endpoint.health.enabled=true 
#启用端点 mappings
management.endpont.mappings.enabed=true
#启用端点 shutdown
management.endpoint.shutdown.enabled=true 
# Actuator 端点前缀
management.endpoints.web.base -path=/manage 
#将原来的 mappings 端点的请求路径修改为 urlMappings
management.endpoints.web.path-mapping.mappings=request_mappings
# Spring MVC 视图解析器配置
spring.mvc.view.prefix=/WEB-INF/jsp/ 
spring.mvc.view.suffix=.Jsp

转载自 https://www.cnblogs.com/ming-blogs/p/10697033.html

### Spring Boot Actuator 安全漏洞概述 Spring Boot Actuator 提供了一系列生产就绪的功能来帮助开发者监控和管理应用程序。然而,这些功能如果未妥善保护,则可能成为攻击者的入口点。Actuator端点暴露的信息可以被恶意利用,从而导致敏感数据泄露或其他安全风险[^1]。 ### 常见的安全漏洞 #### 未经授权访问 默认情况下,某些敏感的actuator端点可能会公开暴露在网络上而没有任何形式的身份验证或授权控制措施。这使得任何能够连接到应用的人都能获取内部状态信息甚至执行危险操作,比如关闭服务实例等[^2]。 #### 敏感信息泄漏 一些actuator端点会返回有关JVM、数据库连接池以及其他运行时环境的具体细节。对于未经身份验证的请求者来说,这种级别的透明度可能导致潜在的风险,因为它们提供了关于基础设施布局和技术栈的重要线索。 ### 修复方案 为了防止上述提到的各种威胁,建议采取以下几种方式加强安全性: #### 配置认证机制 通过向`pom.xml`文件添加`spring-boot-starter-security`依赖项,可以在整个应用程序范围内启用基本HTTP认证或者其他更复杂的身份验证流程。这样做的好处是可以确保只有经过适当权限授予的人才能查看受保护资源的内容[^3]。 ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId> </dependency> ``` #### 控制端点可见性 针对特定版本中的已知问题,在网关项目的Nacos配置文件里增加相应的设置以限制哪些actuator端点应该对外部开放以及如何过滤掉不必要的选项。例如下面这段YAML代码展示了怎样只允许部分必要的接口保持开启状态并排除其他不重要的条目[^4]: ```yaml management: endpoints: web: exposure: include: "*" exclude: "env,health" enabled-by-default: false ``` 以上策略有助于减少因意外暴露而导致的数据泄密事件发生的可能性,并提高了系统的整体防御能力。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值