SpringBoot应用-Actuator监控

本文涉及的产品
可观测可视化 Grafana 版,10个用户账号 1个月
函数计算FC,每月15万CU 3个月
可观测监控 Prometheus 版,每月50GB免费额度
简介: Spring Boot Actuator 是 Spring Boot 提供的一个独立模块,旨在通过简单的方式提供应用程序的监控和管理功能。Actuator 内置了多种端点(Endpoints),可以用于查看应用的健康状况、配置属性、日志级别等。

Spring Boot Actuator 是一个强大的监控和管理工具,允许开发者快速获取应用的运行状态、性能指标和配置细节。它特别适合用于微服务架构中,帮助开发者更好地监控和管理服务。


什么是 Spring Boot Actuator?

Spring Boot Actuator 是 Spring Boot 提供的一个独立模块,旨在通过简单的方式提供应用程序的监控和管理功能。Actuator 内置了多种端点(Endpoints),可以用于查看应用的健康状况、配置属性、日志级别等。

核心特性

  1. 健康检查:检查应用程序和其依赖服务(如数据库、消息队列等)的健康状态。
  2. 性能指标:提供 JVM 内存使用情况、线程池信息、请求处理时间等详细指标。
  3. 应用信息:展示应用的版本、配置属性和环境变量等信息。
  4. 动态管理:可以动态修改日志级别或其他运行时配置。
  5. 安全集成:支持对端点的访问控制和认证。

如何启用 Actuator

1. 添加依赖

pom.xml 中添加 Actuator 依赖:

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

对于 Gradle:

implementation 'org.springframework.boot:spring-boot-starter-actuator'

2. 配置端点

application.propertiesapplication.yml 中启用所需的端点:

management.endpoints.web.exposure.include=*
management.endpoint.health.show-details=always
  • management.endpoints.web.exposure.include=*:公开所有端点。
  • management.endpoint.health.show-details=always:在健康检查中显示详细信息。

常用端点

Spring Boot Actuator 提供了丰富的内置端点,以下是一些常用端点:

端点 描述 示例 URL
/actuator/health 检查应用程序的健康状态 http://localhost:8080/actuator/health
/actuator/info 查看应用程序的基本信息 http://localhost:8080/actuator/info
/actuator/metrics 查看性能指标 http://localhost:8080/actuator/metrics
/actuator/loggers 动态修改日志级别 http://localhost:8080/actuator/loggers
/actuator/env 查看应用的环境属性 http://localhost:8080/actuator/env

示例

健康检查

访问 http://localhost:8080/actuator/health

{
   
  "status": "UP",
  "components": {
   
    "db": {
   
      "status": "UP",
      "details": {
   
        "database": "MySQL",
        "validationQuery": "isValid()"
      }
    },
    "diskSpace": {
   
      "status": "UP",
      "details": {
   
        "total": 5000000000,
        "free": 3000000000
      }
    }
  }
}

性能指标

访问 http://localhost:8080/actuator/metrics,获取可用指标:

{
   
  "names": [
    "jvm.memory.used",
    "jvm.memory.max",
    "http.server.requests",
    "system.cpu.usage"
  ]
}

然后访问具体指标,例如 http://localhost:8080/actuator/metrics/jvm.memory.used

{
   
  "name": "jvm.memory.used",
  "measurements": [
    {
   
      "statistic": "VALUE",
      "value": 12345678
    }
  ],
  "availableTags": [
    {
   
      "tag": "area",
      "values": [
        "heap",
        "nonheap"
      ]
    }
  ]
}

安全配置

Actuator 提供了强大的安全机制,防止敏感信息泄露。

1. 配置基本认证

application.properties 中启用 Spring Security:

spring.security.user.name=admin
spring.security.user.password=secret

访问端点时,需要提供用户名和密码。

2. 限制端点访问

通过以下配置控制访问权限:

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

以上配置仅公开 /health/info 端点。


自定义端点

Actuator 允许开发者自定义端点以满足特定需求。

示例:创建一个自定义端点

代码示例

package com.example.demo.actuator;

import org.springframework.boot.actuate.endpoint.annotation.Endpoint;
import org.springframework.boot.actuate.endpoint.annotation.ReadOperation;
import org.springframework.stereotype.Component;

@Component
@Endpoint(id = "custom")
public class CustomEndpoint {
   

    @ReadOperation
    public String customEndpoint() {
   
        return "This is a custom endpoint";
    }
}

配置

添加自定义端点后,访问 http://localhost:8080/actuator/custom,将返回:

This is a custom endpoint

总结

Spring Boot Actuator 是开发者在生产环境中监控和管理应用的利器。通过内置的端点和丰富的指标支持,开发者可以快速识别问题、优化性能,并确保系统的稳定性和高效运行。同时,Actuator 还提供了高度的可扩展性,支持自定义端点和安全配置。

感谢关注点赞收藏!
目录
相关文章
|
3月前
|
Prometheus 监控 Cloud Native
Spring Boot 可视化监控
本文介绍了如何通过Spring Actuator、Micrometer、Prometheus和Grafana为Spring Boot应用程序添加监控功能。首先创建了一个Spring Boot应用,并配置了Spring Actuator以暴露健康状态和指标接口。接着,利用Micrometer收集应用性能数据,并通过Prometheus抓取这些数据进行存储。最后,使用Grafana将Prometheus中的数据可视化,展示在精美的仪表板上。整个过程简单易行,为Spring Boot应用提供了基本的监控能力,同时也为后续扩展更详细的监控指标奠定了基础。
651 2
|
监控 安全 Java
从0到1 手把手搭建spring cloud alibaba 微服务大型应用框架(十一)spring-boot-admin 监控篇(2)springcloud 集成spring boot admin
从0到1 手把手搭建spring cloud alibaba 微服务大型应用框架(十一)spring-boot-admin 监控篇(2)springcloud 集成spring boot admin
从0到1 手把手搭建spring cloud alibaba 微服务大型应用框架(十一)spring-boot-admin 监控篇(2)springcloud 集成spring boot admin
|
10月前
|
监控 安全 Java
Spring Boot 中的 Actuator 是什么?
Spring Boot 中的 Actuator 是什么?
1934 6
|
2月前
|
安全 Java 数据安全/隐私保护
Springboot应用开发-SpringBootSecurity
Spring Boot Security 是 Spring 提供的安全框架,集成了身份认证和授权功能,帮助开发者快速构建安全的应用程序。本篇博客将从功能介绍到配置和实践,带您全面了解 Spring Boot Security。
684 1
Springboot应用开发-SpringBootSecurity
|
6月前
|
存储 Java 文件存储
微服务——SpringBoot使用归纳——Spring Boot使用slf4j进行日志记录—— logback.xml 配置文件解析
本文解析了 `logback.xml` 配置文件的详细内容,包括日志输出格式、存储路径、控制台输出及日志级别等关键配置。通过定义 `LOG_PATTERN` 和 `FILE_PATH`,设置日志格式与存储路径;利用 `&lt;appender&gt;` 节点配置控制台和文件输出,支持日志滚动策略(如文件大小限制和保存时长);最后通过 `&lt;logger&gt;` 和 `&lt;root&gt;` 定义日志级别与输出方式。此配置适用于精细化管理日志输出,满足不同场景需求。
1575 1
|
2月前
|
Java 区块链 Maven
关于引入maven项目后出现‘parent.relativePath’ of POM错误时的解决方法
关于引入maven项目后出现‘parent.relativePath’ of POM错误时的解决方法
286 3
|
3月前
|
缓存 监控 数据可视化
|
Java Spring 监控
Spring Boot Actuator:守护你的应用心跳,让监控变得触手可及!
【8月更文挑战第31天】Spring Boot Actuator 是 Spring Boot 框架的核心模块之一,提供了生产就绪的特性,用于监控和管理 Spring Boot 应用程序。通过 Actuator,开发者可以轻松访问应用内部状态、执行健康检查、收集度量指标等。启用 Actuator 需在 `pom.xml` 中添加 `spring-boot-starter-actuator` 依赖,并通过配置文件调整端点暴露和安全性。Actuator 还支持与外部监控工具(如 Prometheus)集成,实现全面的应用性能监控。正确配置 Actuator 可显著提升应用的稳定性和安全性。
516 0
|
11月前
|
监控 数据可视化 Java
springBoot:actuator&admin 图形可视化&spring 打包 (七)
本文介绍了Spring Boot Actuator及其图形化管理界面Spring Boot Admin的使用方法,包括依赖导入、服务端与客户端配置、以及如何打包为JAR和WAR文件并部署。通过这些步骤,可以实现应用的监控和管理功能。
483 0
|
监控 NoSQL Java
Spring Boot Actuator 使用和常用配置
Spring Boot Actuator 使用和常用配置
986 5