SpringBoot面试准备 第五天

Spring Boot 中的监视器是什么?

        监视器就是一个类似现实生活中的监控,但是它监控的是程序内部运行情况;Spring Boot自带监控组件—Actuator,它就负责监控程序的健康状况Bean加载情况环境变量日志信息线程信息等,Actuator的核心是端点(Endpoint),它用来监视、提供应用程序的信息,Spring Boot提供的spring-boot-actuator组件中已经内置了非常多的Endpoint(health、info、beans、metrics、httptrace、shutdown等),每个端点都可以启用和禁用

        在Spring Boot中,监视器(Actuator)是一个用于监控和管理应用程序的模块;它提供了一组RESTful接口,可以用于获取应用程序的各种健康指标、性能指标和运行时信息;通过监视器,你可以实时监控应用程序的运行状态、调整配置参数、查看日志等

Spring Boot的监视器模块提供哪些常用的功能?

  1. 健康检查(Health Check):通过`/actuator/health`端点可以获取应用程序的健康状态,包括是否存活、是否就绪等。你可以使用该端点来监控应用程序是否正常运行
  2. 信息端点(Info Endpoint):通过`/actuator/info`端点可以获取应用程序的自定义信息,例如版本号、构建信息
  3. 环境端点(Environment Endpoint):通过`/actuator/env`端点可以获取应用程序的环境变量和配置属性信息
  4. 日志配置端点(Log Configuration Endpoint):通过`/actuator/loggers`端点可以获取和修改应用程序的日志配置信息,例如设置日志级别、添加日志输出器
  5. 线程转储端点(Thread Dump Endpoint):通过`/actuator/threaddump`端点可以获取应用程序的线程转储信息,用于分析应用程序的线程状态和性能问题
  6. 执行器端点(Custom Endpoints):除了上述内置的端点外,你还可以自定义其他的端点,用于获取应用程序的特定信息或执行特定的操作

        通过在Spring Boot应用程序中添加`spring-boot-starter-actuator`依赖,监视器模块将被自动启用,并提供上述功能;你可以通过配置文件或代码来配置监视器的端点路径、安全性等

如何在 Spring Boot 中禁用 Actuator 端点的安全性?

        在Spring Boot中,可以通过配置来禁用Actuator端点的安全性;默认情况下,Actuator端点是受保护的,需要进行身份验证才能访问。以下是禁用Actuator端点安全性的几种方法:

  1. application.properties配置文件
    management.endpoints.web.exposure.include=*
    management.endpoint.health.show-details=always
  2. application.yml配置文件

    management:
      endpoints:
        web:
          exposure:
            include: "*"
      endpoint:
        health:
          show-details: always
  3. 使用Java配置:创建一个配置类,继承`WebSecurityConfigurerAdapter`,重写`configure(HttpSecurity http)`方法,并禁用Actuator端点的安全性

    @Configuration
    public class ActuatorSecurityConfig extends WebSecurityConfigurerAdapter {
     
        @Override
        protected void configure(HttpSecurity http) throws Exception {
            http.authorizeRequests()
                .requestMatchers(EndpointRequest.toAnyEndpoint())
                .permitAll()
                .and()
                .csrf().disable();
        }
    }

        请注意,禁用Actuator端点的安全性会使所有的Actuator端点对外开放,任何人都可以访问;因此,需要谨慎使用,并确保只在安全的环境中使用;另外,禁用Actuator端点的安全性可能会导致安全风险,请确保在生产环境中仔细评估和测试

我们如何监视所有 Spring Boot 微服务?

        Spring Boot 提供监视器端点来监控;这些端点对于获取有关应用程序的信息(如它们是否已启动)以及它们的组件(如数据库等)是否正常运行很有帮助;但是,使用监视器的一个主要缺点或困难是,我们必须单独打开应用程序的端点来了解其状态或健康状况;想象一下涉及 50 个应用程序的微服务,管理员将不得不击中所有 50 个应用程序的执行终端;为了帮助我们处理这种情况,我们将使用位于 GitHub - codecentric/spring-boot-admin: Admin UI for administration of spring boot applications 的开源项目;它建立在 Spring Boot Actuator 之上,它提供了一个 Web UI,使我们能够可视化多个应用程序的度量

  • 12
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值