Cómo configurar Actuators en microservicios Spring Boot

En el post de hoy vamos a revisar paso a paso cómo se debe configurar un proyecto Spring Boot para dejar correctamente habilitados los Actuators, una herramienta clave para la monitorización y gestión de microservicios en entornos Spring Cloud. Si estás construyendo sistemas distribuidos y quieres tener métricas, estados y detalles de tu aplicación expuestos de forma segura, este post te guiará con los pasos concretos.

 

 

¿Qué son los Actuators de Spring Boot?

 

Los Actuators de Spring Boot son un conjunto de endpoints que permiten monitorizar y gestionar el estado de una aplicación en ejecución. Proporcionan información en tiempo real sobre el estado interno de la aplicación, sus componentes, las dependencias y la configuración. Estos endpoints están diseñados para facilitar la operación y el mantenimiento de aplicaciones en entornos de producción, sin necesidad de modificar el código de la aplicación.

 

Gracias a los Actuators, es posible conocer en todo momento si un microservicio está operativo, qué configuración está utilizando, qué rutas HTTP está exponiendo o cuáles son los beans instanciados en el contexto de Spring. Esta capacidad de autoanálisis es fundamental en arquitecturas de microservicios, donde resulta clave tener visibilidad y control sobre el comportamiento de cada componente de forma individual.

 

Además, los Actuators se integran perfectamente con herramientas de monitorización como Prometheus, Grafana o ELK Stack, permitiendo recolectar métricas y eventos que faciliten la detección temprana de problemas. En sistemas que utilizan Spring Cloud (con Eureka, Gateway, Config Server, entre otros), los Actuators permiten una observabilidad unificada y simplifican la gestión de la infraestructura.

 

 

Paso a paso: Configurar Actuators en un microservicio

 

A continuación, vamos ir indicando en detalle los pasos necesarios para tener un microservicio Spring Boot bien monitorizado y listo para producción.

 

➕ 1. Añadir dependencia 

 

El primer paso es incluir en tu proyecto la dependencia que activa los Actuators. Esta dependencia proporciona los endpoints de monitorización de manera automática, sin necesidad de escribir código adicional. Asegúrate de que tu pom.xml (o tu build.gradle) estén correctamente configurados.

 

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


Esto incluye automáticamente las clases necesarias para los Actuators.

 

➕ 2. Exposición de endpoints

 

Por defecto, Spring Boot no expone todos los endpoints por cuestiones de seguridad. Es importante que configures explícitamente qué endpoints quieres hacer accesibles. Para ello, debes modificar el fichero application.properties (o el fichero application.yml si utilizas YAML).

 


management.endpoints.web.exposure.include=health,info,env,beans,mappings
management.endpoints.web.base-path=/actuator
management.endpoint.health.show-details=always

 

Con esto habilitas los endpoints health, info, env, beans y mappings bajo la ruta /actuator/*. Serían accesibles del siguiente modo:

  • /actuator/health
  • /actuator/info
  • /actuator/env 
  • /actuator/beans
  • /actuator/mappings  

  

 

➕ 3. Endpoint /health

 

Este probablemente es el endpoint más importante, ya que permite comprobar si tu microservicio está funcionando correctamente. Puedes configurar el nivel de detalle que se muestra en la respuesta:

 

 
management.endpoint.health.show-details=when_authorized
 

 

Permite seguridad selectiva y añadir indicadores personalizados si lo necesitas.

 

➕ 4. Endpoint /info

 

El endpoint /info es ideal para exponer información básica de la aplicación, como versión o nombre. Muy útil para integración con pipelines de CI/CD o dashboards de operaciones. La información a exponer debe ser parametrizada también en el fichero de propiedades.

 

 
management.info.env.enabled=true
 
info.app.name=MiMicroservicio
info.app.version=1.2.3
info.app.description=MiMicroservicio-UniversoJava-App

 

👉 Si ahora invocamos al endpoint de nuestro microservicio:

http://localhost:55061/actuator/info

 

Se nos mostrará la información que hemos configurado en el xml. 

  

Ideal para integración en pipelines CI/CD o visibilidad operativa.

 

➕ 5. Endpoint /env

 

Con este endpoint puedes consultar todas las propiedades activas en el entorno. Es muy útil en fases de pruebas o cuando sospechas de problemas en configuración.

 

GET /actuator/env/SOME_PROPERTY

 

Se trata de una herramienta muy útil para detectar desajustes en configuración o en variables sensibles. Por otra parte, teniendo en cuenta que permite recuperar nuestras variables de entorno, debes tener cuidado y proteger especialmente este endpoint.

 

 

➕ 6. Endpoint /beans

 

Este endpoint muestra el listado de beans instanciados en el contexto de Spring. Es perfecto para comprobar qué componentes se han cargado correctamente.

 

curl GET http://localhost:8080/actuator/beans

 

Devuelve contexto y relaciones. Perfecto para depuración o control de vistas de contexto.

 

➕ 7. Endpoint /mappings

 

Si quieres saber qué endpoints está exponiendo tu microservicio, /mappings te muestra todas las rutas HTTP. Es de gran ayuda cuando trabajas con APIs dinámicas.

 

curl GET http://localhost:8080/actuator/mappings

 

Muestra tanto tus endpoints como los endpoints internos de actuator. Dicha información es ideal para descubrir rutas y conflictos.

 

🚧 Nota: No permite filtrar únicamente las rutas propias (sin los endpoints internos de Actuator). Si deseas dicha información, entonces tendrías que implementar una consulta personalizada.

 

➕ 8. Seguridad de los Actuators

 

Es fundamental proteger los endpoints más sensibles de Actuator, sobre todo en entornos de producción. Para ello, lo recomendable es integrar Spring Security en tu proyecto:

 

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


Y luego en tu configuración de seguridad habría que filtrar los accesos a los endpoints de los Actuators anteriores. Para algunos de ellos podríamos dejar acceso libre y para algunos otros deberíamos solicitar autenticación de acceso. Sería añadir algo así como lo siguiente:

 

 
http
  .csrf().disable()
  .authorizeRequests()
    .antMatchers("/actuator/health","/actuator/info").permitAll()
    .antMatchers("/actuator/**").authenticated()
  .and().httpBasic();


Así dejamos abiertos los endpoints /info y /health, mientras que protegemos los accesos al resto de endpoints de los actuators (en nuestro ejemplo eran env, beans y mappings).

 

ImportanteSi estamos usando Spring Security en nuestro microservicio entonces, aparte de la activación propia de Actuator que hemos visto en los pasos anteriores, también tendremos que permitir que los paths anteriores estén validados por Spring Security. Por tanto, si no establecemos el filtrado de accesos que acabamos de indicar, los endpoints Actuator no serán accesibles.

 

 

✅ Ejemplo completo en YAML: application.yml

 
El ejemplo anterior completo, con la activación de los actuators mencionados (info, health, env, beans y mappings), quedaría como sigue en un fichero YAML.
 
 
management:
  endpoints:
    web:
      exposure:
        include:
          - health
          - info
          - env
          - beans
          - mappings
      base-path: /actuator
  endpoint:
    health:
      show-details: always

spring:
  security:
    user:
      name: admin
      password: secret
     

 

Con esto tendrás los endpoints operativos y protegidos apropiadamente.

 

 

Conclusión

 

Los Actuators son esenciales para microservicios en Spring Cloud: ofrecen consulta de estados, métricas, rutas y configuración al instante. Su puesta en funcionamiento es sencilla:

  1. Añadir dependencia.

  2. Exponer endpoints esenciales.

  3. Configurar detalles (health, info, env, beans, mappings).

  4. Proteger accesos con Spring Security.

 

Estos pasos dotan a tu microservicio de monitorización y control profesional, proporcionando una visión clara de su comportamiento y una rápida respuesta ante incidencias.

 

¡Nos vemos en el siguiente post!

Saludos.

 

Comentarios

Entradas populares de este blog

Componentes y Ventanas de Java Swing

Creación de Webservice SOAP mediante Anotaciones

Configurar Apache Tomcat en Eclipse