domingo, 6 de marzo de 2022

Spring Boot Admin: Uso

Ya hemos visto un post sobre el uso de spring boot admin y como configurarlo cliente-servidor o a través de un Service Discovery como Eureka. En este post, veremos un poco más sobre su uso. Para ello, hemos utilizado las aplicaciones que configuramos en el anterior post, aquí puedes ver más información. Con las siguientes versiones de librerías:

  • Spring Boot: 2.5.7
  • Spring Admin: 2.5.4

Para mostrar el número de versión asociado a la aplicación debemos configurarlo a través del fichero pom.xml, el plugin spring-boot-maven-plugin y la opción build-info. De esta forma se creará de forma automática el fichero META-INF/build-info.properties que transmitirá la información al SBA

<plugin>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
    <executions>
        <execution>
            <goals>
                <goal>build-info</goal>
            </goals>
        </execution>
    </executions>
</plugin>

También podemos añadir etiquetas a la información de nuestra aplicación que nos permita categorizarla, como puede ser el entorno donde se despliega. Estas etiquetas se trasladarán a través del endpoint info. Ejemplo de configuración:

#using the info endpoint
info.tags.environment=test


En el menú lateral Insights tendremos a nuestro alcance multitud de información, desde métricas, información del entorno, tareas programadas o propiedades de configuración. En el apartado de métricas podremos tener de un simple vistazo configuradas distintas mediciones que nos permitan comprobar como está funcionando la aplicación. 


También podemos modificar los niveles de trazas de log de cualquiera de las aplicaciones, posibilitando bajarlo o subirlo. 

Y aunque la documentación oficial indica que es necesario una configuración mínima. Haciendo uso de log4j2 y las versiones indicadas, no ha hecho falta modificar el fichero de configuración para que logs sean modificables y surja efecto el cambio a través de SBA


Para añadir interacción con los beans JMX, necesitamos por un lado añadir la dependencia org.jolokia.jolokia-core y por otro lado la propiedad spring.jmx.enabled en el fichero de configuración application.properties. De esta forma tendremos acceso de lectura de los atributos de los beans y en algunos caso incluso de escritura. Además también podremos realizar invocaciones sobre los métodos de dichos beans. 

Por último vamos a mostrar como podemos configurar notificaciones, estas se mostrarán cuando cambie las aplicaciones se detengan. Hay múltiples formas de realizar las notificaciones, por Slack, Telegram, Teams, etc. 
Nosotros utilizaremos el método tradicional de envío de correos. Y para ello vamos a utilizar MockMock un servidor SMTP muy básico que nos permitirá recibir los correos de prueba. Este servidor debemos arrancarlo con permisos de administrador para permitir el uso de los puertos y a través del siguiente comando, donde el primer parámetro es el puerto del servidor SMTP y el segundo el del navegador web que nos permitirá ver los correos:

sudo java -jar MockMock.jar -p 25 -h 8282

Y ahora debemos configurar SBA para el uso de correos. Por un lado le añadimos la dependencia spring-boot-starter-mail y por otro lado la configuración para el envío de mails:

spring.mail.host=localhost
spring.mail.port=25
spring.mail.properties.mail.transport.protocol=smtp
spring.boot.admin.notify.mail.to=receiver@example.com spring.boot.admin.notify.mail.from=sender@example.com

Ahora cuando una aplicación se caiga recibiremos el siguiente mail:


Espero que este post les ayude a mejorar la comprensión de esta increíble herramienta de monitorización como es Spring Boot Admin. 

No hay comentarios:

Publicar un comentario