Introducción

Spring Boot Actuator es un subproyecto de Spring Boot que proporciona funcionalidades para monitorear y gestionar aplicaciones en producción. Actuator incluye una serie de endpoints que permiten obtener información sobre el estado de la aplicación, métricas, información del sistema, y más.

Objetivos del Tema

  • Entender qué es Spring Boot Actuator y su propósito.
  • Aprender a habilitar y configurar Actuator en una aplicación Spring Boot.
  • Explorar los endpoints proporcionados por Actuator.
  • Personalizar y asegurar los endpoints de Actuator.

¿Qué es Spring Boot Actuator?

Spring Boot Actuator proporciona un conjunto de herramientas para monitorear y gestionar aplicaciones Spring Boot. Estas herramientas incluyen endpoints que exponen información sobre el estado de la aplicación, métricas, información del sistema, y más.

Características Clave

  • Endpoints de Monitoreo: Proporciona endpoints RESTful para monitorear y gestionar la aplicación.
  • Métricas: Recopila y expone métricas de la aplicación.
  • Salud de la Aplicación: Proporciona información sobre la salud de la aplicación.
  • Información del Sistema: Exposición de detalles del sistema y la aplicación.

Habilitando Spring Boot Actuator

Para habilitar Actuator en tu aplicación Spring Boot, necesitas agregar la dependencia spring-boot-starter-actuator en tu archivo pom.xml (para proyectos Maven) o build.gradle (para proyectos Gradle).

Maven

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

Gradle

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

Configuración de Actuator

Una vez que Actuator está habilitado, puedes configurarlo en el archivo application.properties o application.yml.

Configuración Básica

Por defecto, Actuator expone varios endpoints en la ruta /actuator. Puedes personalizar esta ruta y habilitar o deshabilitar endpoints específicos.

application.properties

management.endpoints.web.base-path=/manage
management.endpoints.web.exposure.include=*

application.yml

management:
  endpoints:
    web:
      base-path: /manage
      exposure:
        include: "*"

Endpoints de Actuator

Spring Boot Actuator proporciona varios endpoints útiles. Aquí hay una lista de algunos de los más comunes:

Endpoint Descripción
/actuator/health Proporciona información sobre la salud de la aplicación.
/actuator/info Proporciona información general sobre la aplicación.
/actuator/metrics Proporciona métricas de la aplicación.
/actuator/env Muestra las propiedades del entorno de la aplicación.
/actuator/loggers Permite ver y modificar los niveles de registro de la aplicación.
/actuator/threaddump Muestra un volcado de hilos de la JVM.
/actuator/httptrace Muestra trazas HTTP recientes.

Ejemplo de Uso de Endpoints

Verificar la Salud de la Aplicación

curl http://localhost:8080/manage/health

Obtener Información de la Aplicación

curl http://localhost:8080/manage/info

Personalización de Endpoints

Puedes personalizar los endpoints de Actuator para que se ajusten a tus necesidades específicas. Por ejemplo, puedes agregar información personalizada al endpoint /actuator/info.

Agregar Información Personalizada al Endpoint /info

application.properties

info.app.name=Mi Aplicación
info.app.description=Esta es una aplicación de ejemplo.
info.app.version=1.0.0

application.yml

info:
  app:
    name: Mi Aplicación
    description: Esta es una aplicación de ejemplo.
    version: 1.0.0

Seguridad de los Endpoints

Es importante asegurar los endpoints de Actuator, especialmente en entornos de producción. Puedes usar Spring Security para proteger estos endpoints.

Ejemplo de Configuración de Seguridad

application.properties

management.endpoints.web.exposure.include=health,info
management.endpoint.health.show-details=always

Security Configuration

import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;

@Configuration
public class SecurityConfig extends WebSecurityConfigurerAdapter {
    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http
            .authorizeRequests()
            .antMatchers("/manage/health", "/manage/info").permitAll()
            .anyRequest().authenticated()
            .and()
            .httpBasic();
    }
}

Ejercicio Práctico

Ejercicio 1: Habilitar y Configurar Actuator

  1. Agrega la dependencia spring-boot-starter-actuator a tu proyecto.
  2. Configura Actuator para exponer todos los endpoints en la ruta /manage.
  3. Verifica la salud de la aplicación accediendo al endpoint /manage/health.

Solución

  1. Agrega la dependencia en pom.xml o build.gradle.
  2. Configura application.properties o application.yml:
    management.endpoints.web.base-path=/manage
    management.endpoints.web.exposure.include=*
    
  3. Ejecuta la aplicación y accede a http://localhost:8080/manage/health.

Conclusión

Spring Boot Actuator es una herramienta poderosa para monitorear y gestionar aplicaciones Spring Boot. Proporciona una serie de endpoints útiles que permiten obtener información sobre el estado de la aplicación, métricas, y más. Asegurar estos endpoints es crucial para proteger la información sensible en entornos de producción. Con Actuator, puedes tener una visión clara y detallada del comportamiento de tu aplicación, lo que facilita la gestión y el mantenimiento.

En el próximo tema, exploraremos los perfiles de Spring Boot y cómo pueden ayudarte a gestionar configuraciones específicas para diferentes entornos.

Curso de Spring Boot

Módulo 1: Introducción a Spring Boot

Módulo 2: Conceptos Básicos de Spring Boot

Módulo 3: Construyendo Servicios Web RESTful

Módulo 4: Acceso a Datos con Spring Boot

Módulo 5: Seguridad en Spring Boot

Módulo 6: Pruebas en Spring Boot

Módulo 7: Funciones Avanzadas de Spring Boot

Módulo 8: Despliegue de Aplicaciones Spring Boot

Módulo 9: Rendimiento y Monitoreo

Módulo 10: Mejores Prácticas y Consejos

© Copyright 2024. Todos los derechos reservados