Spring关于Actuator Endpoints访问不到的说明

1、Actuator 帮助你在应用程序生产环境时监视和管理应用程序。可以使用HTTP的各种请求来监管,审计,收集应用的运行情况。

2、Maven中增加以下依赖

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>

3、通过在appliction.propertiesappliction.yml中暴露actuator的监控接口

management.endpoints.web.exposure.include=*,hystrix.stream

4、其中actuator自带的监控接口包括:

URL作用
/actuator/health健康检查
/actuator/beans查看容器中的所有bean
/actuator/mapping查看Web的URL映射
/actuator/env查看环境信息
/actuator/dump查看活动线程
/actuator/info查看定制信息
/actuator/metrics查看内存、CPU核心等系统参数
/actuator/trace查看用户请求信息
/actuator/loggers查看日志

5、如何解禁 Endpoint

默认

  • /actuator/health 和 /actuator/info 可 Web 访问

这里按需配置就好了哈。比如我需要健康检查和查看环境信息

  • management.endpoints.web.exposure.include=health,env

解禁所有 Endpoint

appliction.propertiesappliction.yml

  • management.endpoints.web.exposure.include=*

6、生产环境需谨慎
尽量不要生产环境发布过多的 Endpoints,因为里面含有像 shutdown 的 Endpoint,其实是可以关闭你的系统的。

### 解决 Spring Boot Actuator 访问时出现的 404 错误 当遇到 Spring Boot Actuator 的端点返回 404 错误时,通常是因为应用程序配置不正确或某些必要的设置被遗漏。以下是几种可能的原因及其解决方案: #### 配置文件中的管理端口和路径检查 默认情况下,Spring Boot 应用程序会暴露一些基本的健康检查和其他监控信息到 `/actuator` 路径下。如果更改了 `management.server.port` 或者设置了自定义的基础 URL,则需要确保请求发送到了正确的地址。 对于大多数应用来说,默认行为已经足够;但如果确实修改过这些属性,在尝试访问任何 actuator endpoint 前应该先确认它们是否指向预期的位置[^1]。 ```yaml # application.yml example server: port: 8080 management: server: port: 8081 # 如果指定了不同的管理服务器端口号,请确保使用该端口来访问 endpoints endpoints: web: exposure: include: "*" # 允许公开所有内置endpoint, 生产环境中应谨慎考虑安全因素并仅开放必要项 ``` #### 添加所需依赖关系 为了使 Actuator 功能正常工作,必须在项目的构建描述符 (pom.xml 对于 Maven 构建工具而言) 中引入 spring-boot-starter-actuator 和其他相关组件作为依赖项。这一步骤已经在给定的信息中提到过了。 #### 启用特定 Endpoint 并验证安全性策略 有时即使添加了上述依赖并且没有改变默认配置,仍然无法看到想要查看的数据。这是因为并非所有的 endpoint 默认都是可访问的——特别是那些涉及敏感操作或数据泄露风险较高的部分。因此还需要进一步调整哪些 endpoint 可以对外提供服务以及谁有权限对其进行调用。 可以通过编辑 application.properties 或 .yml 文件来进行这项设定: ```properties # application.properties example management.endpoints.web.exposure.include=health,prometheus # 明确指定要启用的具体endpoints名称列表 spring.security.user.name=admin # 设置用于保护endpoint的安全认证用户名 spring.security.user.password=secret # 密码也需相应地给出 ``` 另外值得注意的是关于安全性的考量:虽然可以简单地将所有 endpoint 设为 public (`*`) 来快速解决问题,但这并不是一个好的实践方法。相反应当仔细评估每一个 endpoint 是否真的有必要对外开放,并采取适当措施防止潜在威胁的发生,比如通过 HTTPS 加密传输、限制 IP 地址范围等方式加强防护力度[^2]。 最后提醒一点就是版本兼容性问题也可能引起类似的错误提示。确保所使用的 Spring Boot 版本与 Actuator 组件之间不存在冲突是非常重要的。如果有条件的话建议升级至最新稳定版以获得更好的支持和服务质量保障。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

老周聊架构

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值