03 - Spring Boot Actuator

03/03/2025 - 3 phút

Follow  on Google News

Trong bài viết này, chúng ta sẽ tìm hiểu về Spring Boot Actuator, một công cụ mạnh mẽ giúp giám sát và quản lý ứng dụng Spring Boot một cách dễ dàng.

1. Giới Thiệu

Khi triển khai một ứng dụng vào môi trường production, việc giám sát và quản lý trở nên vô cùng quan trọng. Bạn cần biết ứng dụng của mình có đang hoạt động ổn định không, có lỗi gì xảy ra, hiệu suất ra sao, bộ nhớ và CPU có bị quá tải không, v.v.

Spring Boot Actuator là một công cụ mạnh mẽ giúp bạn giám sát và quản lý ứng dụng thông qua nhiều endpoint hữu ích mà không cần viết thêm nhiều mã nguồn.

2. Cách Cài Đặt Spring Boot Actuator

Để sử dụng Actuator, bạn chỉ cần thêm dependency vào pom.xml:

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

Sau khi thêm dependency này, Actuator sẽ tự động kích hoạt một số endpoint giúp theo dõi tình trạng ứng dụng.

3. Các Endpoint Quan Trọng Của Spring Boot Actuator

Spring Boot Actuator cung cấp nhiều endpoint hữu ích để theo dõi ứng dụng. Một số endpoint quan trọng:

EndpointMô tả
/actuator/healthKiểm tra tình trạng ứng dụng (UP/DOWN).
/actuator/infoHiển thị thông tin tùy chỉnh về ứng dụng.
/actuator/metricsCung cấp thông tin về hiệu suất, CPU, bộ nhớ, request count.
/actuator/loggersHiển thị và điều chỉnh mức độ log.
/actuator/envHiển thị thông tin cấu hình môi trường.
/actuator/beansLiệt kê tất cả các bean đang được sử dụng trong ứng dụng.
/actuator/mappingsHiển thị danh sách tất cả các endpoint API trong ứng dụng.

3.1. Bật Các Endpoint Quan Trọng

Mặc định, chỉ có /health/info được bật. Để bật tất cả endpoint, thêm vào application.properties:

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

Nếu bạn chỉ muốn bật một số endpoint cụ thể, có thể cấu hình như sau:

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

3.2. Kiểm Tra Tình Trạng Ứng Dụng

Sau khi bật Actuator, bạn có thể kiểm tra tình trạng ứng dụng bằng cách truy cập:

http://localhost:8080/actuator/health

Mặc định, Actuator sẽ trả về:

json
{
  "status": "UP"
}

Nếu có lỗi trong ứng dụng, trạng thái có thể chuyển sang DOWN, OUT_OF_SERVICE, hoặc UNKNOWN.

3.3. Theo Dõi Hiệu Suất Ứng Dụng

Bạn có thể truy cập endpoint /metrics để xem các số liệu thống kê như:

http://localhost:8080/actuator/metrics

Ví dụ, để xem số lượng request HTTP nhận được:

http://localhost:8080/actuator/metrics/http.server.requests

Kết quả:

json
{
  "name": "http.server.requests",
  "measurements": [
    { "statistic": "count", "value": 150 },
    { "statistic": "max", "value": 200.5 }
  ]
}

4. Bảo Mật Cho Actuator Endpoint

Do Actuator cung cấp nhiều thông tin nhạy cảm, bạn nên hạn chế quyền truy cập bằng cách cấu hình bảo mật.

Ví dụ, để yêu cầu xác thực cho các endpoint, thêm vào application.properties:

properties
management.endpoints.web.exposure.include=*
spring.security.user.name=admin
spring.security.user.password=secret

Sau đó, khi truy cập các endpoint Actuator, bạn sẽ cần đăng nhập với tài khoản admin và mật khẩu secret.

5. Tích Hợp Actuator Với Prometheus và Grafana

Spring Boot Actuator có thể kết hợp với PrometheusGrafana để giám sát hiệu suất ứng dụng.

  • Prometheus thu thập dữ liệu từ endpoint /actuator/metrics
  • Grafana giúp hiển thị dữ liệu theo dạng biểu đồ, giúp dễ dàng theo dõi.

Cách tích hợp Prometheus:

  1. Thêm dependency:
xml
<dependency>
    <groupId>io.micrometer</groupId>
    <artifactId>micrometer-registry-prometheus</artifactId>
</dependency>
  1. Bật endpoint Prometheus:
properties
management.endpoints.web.exposure.include=prometheus
  1. Truy cập dữ liệu metric tại:

    http://localhost:8080/actuator/prometheus

6. Kết Luận

Spring Boot Actuator là một công cụ mạnh mẽ giúp giám sát và quản lý ứng dụng một cách dễ dàng.

Tóm tắt các tính năng quan trọng:

  • Cung cấp nhiều endpoint hữu ích để kiểm tra tình trạng ứng dụng.
  • Theo dõi hiệu suất, tài nguyên hệ thống và số lượng request.
  • Hỗ trợ bảo mật để giới hạn quyền truy cập vào thông tin nhạy cảm.
  • Tích hợp với Prometheus và Grafana để giám sát chuyên sâu.

👉 Trong bài viết tiếp theo, chúng ta sẽ tìm hiểu về Spring Boot Logging, cách cấu hình và tối ưu hệ thống log trong ứng dụng Spring Boot!