SpringBoot之actuator

本文介绍SpringBoot在微服务架构中的监控与管理机制,重点讲解如何利用spring-boot-starter-actuator模块进行自动化运维,包括配置监控端点、收集应用运行指标及实现预警规则。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

SpringBoot的监控与管理

  在微服务架构中,我们将原本庞大的单体系统拆分成多个提供不同服务的应用。虽然内部逻辑因分解而得以简化,但是系统的维护复杂度大大提升。很明显,传统的运维方式不能再使用,我们需要一套自动化的监控运维机制。这套机制就必须要不间断地收集各个微服务应用的各项指标情况已作为基础,并作出监控和预警规则。

  我们首先来了解一下SpringBoot官方自带的一个特殊依赖模块spring-boot-starter-actuator,引入依赖过后就会出现多个端点来监控项目的实际运行情况。

  actuator的maven依赖

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

  针对springboot 2.0以上的版本,启动项目之后只会默认出现/actuator/health,/actuator/info,/actuator这3个接口,看了一下好像也不能看出什么来,就说明肯定是有隐藏的待我们去挖掘。

这就需要我们在配置文件中去配置了

#actuator 配置
management:
  endpoints:
    web:
      base-path: /   #将/actuator/info调整为/info接口
      exposure:
        include: "*"  #默认只包括/health和/info 2个接口,设置为所有可见 这里注意yml格式 * 要加上""

2.0以上版本的区别就是配置文件需要再加一个management(为什么2.0之后要多加一个management,而不是直接endpoints.XX.XX?)

之后再启动项目就可以愉快的看见所有的监控端点啦

放两张对比图

这个是啥

然后就可以用开始测试这些端点的详细数据啦~。~

详细的数据可以看看参考书籍,今天是第一次写博客,希望能坚持着把SpringCloud相关的知识点都搞明白。

参考书籍:

《SpringCloud微服务实战》 翟永超

### 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、付费专栏及课程。

余额充值