Skip to main content

Command Palette

Search for a command to run...

Bài 10: Spring Boot Actuator

Published
4 min readView as Markdown

1. Giới thiệu về Spring Boot Actuator

Spring Boot Actuator là một module mạnh mẽ của Spring Boot, cung cấp các công cụ giúp theo dõi và quản lý các ứng dụng Spring Boot. Actuator cung cấp các endpoint để hiển thị thông tin chi tiết về ứng dụng, như trạng thái sức khỏe, thông tin hệ thống, số liệu thống kê và các cấu hình. Điều này giúp cho việc giám sát và quản lý ứng dụng trở nên dễ dàng và hiệu quả hơn.

2. Các endpoint quan trọng của Actuator

Dưới đây là một số endpoint quan trọng mà Actuator cung cấp:

  • /actuator/health: Cung cấp thông tin về trạng thái sức khỏe của ứng dụng.

  • /actuator/info: Cung cấp thông tin tùy chỉnh về ứng dụng.

  • /actuator/metrics: Hiển thị các số liệu thống kê về ứng dụng, như CPU, memory, và các request metrics.

  • /actuator/httptrace: Hiển thị thông tin về các request HTTP gần đây.

  • /actuator/env: Hiển thị các thuộc tính môi trường hiện tại.

  • /actuator/beans: Hiển thị tất cả các bean được quản lý bởi Spring IoC container.

  • /actuator/loggers: Cung cấp thông tin và cho phép thay đổi mức độ log của các logger.

3. Cách cấu hình và sử dụng Actuator

3.1. Thêm Actuator vào dự án

Đầu tiên, bạn cần thêm dependency Spring Boot Actuator vào dự án của mình. Bạn có thể làm điều này bằng cách cập nhật file pom.xml (nếu sử dụng Maven) hoặc build.gradle (nếu sử dụng Gradle).

Ví dụ với Maven:

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

Ví dụ với Gradle:

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

3.2. Kích hoạt các endpoint

Mặc định, một số endpoint của Actuator sẽ bị vô hiệu hóa vì lý do bảo mật. Bạn có thể kích hoạt chúng trong file application.properties hoặc application.yml.

# application.properties
management.endpoints.web.exposure.include=health,info,metrics,env,beans,loggers,httptrace

Hoặc, nếu sử dụng application.yml:

management:
  endpoints:
    web:
      exposure:
        include: health,info,metrics,env,beans,loggers,httptrace

3.3. Cấu hình bảo mật cho các endpoint

Vì các endpoint Actuator có thể chứa thông tin nhạy cảm, bạn nên cấu hình bảo mật để chỉ cho phép các người dùng được xác thực truy cập vào các endpoint này.

Ví dụ với Spring Security:

@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http
            .authorizeRequests()
                .antMatchers("/actuator/**").authenticated()
                .and()
            .httpBasic();
    }
}

3.4. Tùy chỉnh thông tin endpoint /info

Bạn có thể tùy chỉnh thông tin được hiển thị tại endpoint /actuator/info bằng cách thêm các thuộc tính tùy chỉnh vào file application.properties hoặc application.yml.

Ví dụ với application.properties:

info.app.name=My Spring Boot Application
info.app.description=This is a sample application using Spring Boot Actuator
info.app.version=1.0.0

Ví dụ với application.yml:

info:
  app:
    name: My Spring Boot Application
    description: This is a sample application using Spring Boot Actuator
    version: 1.0.0

4. Ví dụ sử dụng Spring Boot Actuator

Dưới đây là một ví dụ đơn giản về cách sử dụng Spring Boot Actuator trong một ứng dụng Spring Boot.

4.1. Tạo dự án Spring Boot

Bạn có thể tạo một dự án Spring Boot mới bằng Spring Initializr với các dependency sau:

  • Spring Web

  • Spring Boot Actuator

4.2. Cấu trúc dự án

myapp
|-- src
|   |-- main
|   |   |-- java
|   |   |   `-- com
|   |   |       `-- example
|   |   |           `-- myapp
|   |   |               |-- MyApplication.java
|   |   `-- resources
|   |       `-- application.properties
|-- pom.xml

4.3. Lớp chính của ứng dụng

// MyApplication.java
package com.example.myapp;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class MyApplication {
    public static void main(String[] args) {
        SpringApplication.run(MyApplication.class, args);
    }
}

4.4. Cấu hình Actuator trong application.properties

# application.properties
management.endpoints.web.exposure.include=health,info,metrics,env,beans,loggers,httptrace
info.app.name=My Spring Boot Application
info.app.description=This is a sample application using Spring Boot Actuator
info.app.version=1.0.0

4.5. Chạy ứng dụng và kiểm tra các endpoint

Chạy ứng dụng bằng cách sử dụng Maven:

mvn spring-boot:run

Mở trình duyệt và truy cập các endpoint Actuator:

5. Kết luận

Trong bài viết này, chúng ta đã tìm hiểu về Spring Boot Actuator, các endpoint quan trọng mà Actuator cung cấp, và cách cấu hình và sử dụng Actuator trong ứng dụng Spring Boot. Spring Boot Actuator giúp cho việc theo dõi và quản lý ứng dụng trở nên dễ dàng và hiệu quả hơn, cung cấp thông tin chi tiết về trạng thái và hiệu suất của ứng dụng.

Trong bài viết tiếp theo, chúng ta sẽ tìm hiểu về kiểm thử trong Spring Boot, bao gồm các loại kiểm thử khác nhau và cách sử dụng các công cụ kiểm thử như Spring Boot Test, MockMvc và TestRestTemplate.

More from this blog

devngu

169 posts