Compartir a través de


Streaming de registros de consola de aplicaciones de Azure Spring Apps en tiempo real

Nota:

Azure Spring Apps es el nuevo nombre del servicio Azure Spring Cloud. Aunque el servicio tiene un nuevo nombre, verá el nombre antiguo en algunos lugares durante un tiempo mientras trabajamos para actualizar recursos, como capturas de pantalla, vídeos y diagramas.

Este artículo se aplica a: ✔️ Java ✔️ C#

La información de este artículo puede ponerse en práctica en: ✔️ Básico o Estándar ✔️ Enterprise

En este artículo se describe cómo habilitar el streaming de registro en la CLI de Azure para obtener registros de la consola de la aplicación en tiempo real para solucionar problemas. También puede usar la configuración de diagnóstico para analizar datos de diagnóstico en Azure Spring Apps. Para obtener más información, consulte Análisis de registros y métricas con la configuración de diagnóstico. Para obtener más información sobre el streaming de registros, consulte Transmisión de registros de trabajos de Azure Spring Apps en tiempo real y Transmisión de registros de componentes administrados de Azure Spring Apps en tiempo real.

Requisitos previos

Uso de la CLI de Azure para generar finales de registros

En esta sección se proporcionan ejemplos de uso de la CLI de Azure para producir registros finales. Para evitar especificar repetidamente el nombre del grupo de recursos y el nombre de la instancia de servicio, use los siguientes comandos para establecer el nombre del grupo de recursos y el nombre del clúster predeterminados:

az config set defaults.group=<service-group-name>
az config set defaults.spring=<service-instance-name>

El grupo de recursos y el nombre del servicio se omiten en los siguientes ejemplos.

Final del registro de la aplicación con una sola instancia

Si una aplicación denominada auth-service solo tiene una instancia, puede ver el registro de la instancia de la aplicación con el siguiente comando:

az spring app logs --name <application-name>

El comando devuelve registros similares a los ejemplos siguientes, donde auth-service es el nombre de la aplicación.

...
2020-01-15 01:54:40.481  INFO [auth-service,,,] 1 --- [main] o.apache.catalina.core.StandardService  : Starting service [Tomcat]
2020-01-15 01:54:40.482  INFO [auth-service,,,] 1 --- [main] org.apache.catalina.core.StandardEngine  : Starting Servlet engine: [Apache Tomcat/9.0.22]
2020-01-15 01:54:40.760  INFO [auth-service,,,] 1 --- [main] o.a.c.c.C.[Tomcat].[localhost].[/uaa]  : Initializing Spring embedded WebApplicationContext
2020-01-15 01:54:40.760  INFO [auth-service,,,] 1 --- [main] o.s.web.context.ContextLoader  : Root WebApplicationContext: initialization completed in 7203 ms

...

Final del registro para una aplicación con varias instancias

Si existen varias instancias de la aplicación denominada auth-service, puede ver el registro de la instancia mediante la opción -i/--instance.

En primer lugar, ejecute el siguiente comando para obtener los nombres de instancia de la aplicación:

az spring app show --name auth-service --query properties.activeDeployment.properties.instances --output table

El comando genera resultados similares a los siguientes:

Name                                         Status    DiscoveryStatus
-------------------------------------------  --------  -----------------
auth-service-default-12-75cc4577fc-pw7hb  Running   UP
auth-service-default-12-75cc4577fc-8nt4m  Running   UP
auth-service-default-12-75cc4577fc-n25mh  Running   UP

Después, puede transmitir los registros de una instancia de la aplicación con la opción -i/--instance, de la siguiente manera:

az spring app logs --name auth-service --instance auth-service-default-12-75cc4577fc-pw7hb

También puede obtener los detalles de las instancias de la aplicación en Azure Portal. Después de seleccionar Aplicaciones en el panel de navegación izquierdo del servicio Azure Spring Apps, seleccione Instancias de aplicación.

Streaming continuo de nuevos registros

De forma predeterminada, az spring app logs imprime solo los registros existentes transmitidos a la consola de la aplicación y, a continuación, se cierra. Si desea transmitir nuevos registros, agregue el argumento -f/--follow, tal y como se muestra en el ejemplo siguiente:

az spring app logs --name auth-service --follow

Cuando se usa el argumento --follow para seguir registros instantáneos, el servicio de streaming de registro de Azure Spring Apps envía registros de latido al cliente cada minuto, a menos que la aplicación escriba registros constantemente. Los mensajes de registro de latido usan el siguiente formato: 2020-01-15 04:27:13.473: No log from server.

Use el siguiente comando para comprobar todas las opciones de registro que se admiten:

az spring app logs --help

Aplicación de formato a los registros estructurados de JSON

Nota:

La aplicación de formato a los registros estructurados de JSON requiere la versión 2.4.0 o posterior de la extensión Spring.

Los registros de aplicaciones estructurados se muestran en formato JSON, que puede ser difícil de leer. Puede usar el argumento --format-json para dar un formato más legible a los registros en formato JSON. Para obtener más información, consulte Registro de aplicaciones estructurado para Azure Spring Apps.

En el ejemplo siguiente se muestra cómo usar el argumento --format-json:

# Raw JSON log
$ az spring app logs --name auth-service
{"timestamp":"2021-05-26T03:35:27.533Z","logger":"com.netflix.discovery.DiscoveryClient","level":"INFO","thread":"main","mdc":{},"message":"Disable delta property : false"}
{"timestamp":"2021-05-26T03:35:27.533Z","logger":"com.netflix.discovery.DiscoveryClient","level":"INFO","thread":"main","mdc":{},"message":"Single vip registry refresh property : null"}

# Formatted JSON log
$ az spring app logs --name auth-service --format-json
2021-05-26T03:35:27.533Z  INFO [           main] com.netflix.discovery.DiscoveryClient   : Disable delta property : false
2021-05-26T03:35:27.533Z  INFO [           main] com.netflix.discovery.DiscoveryClient   : Single vip registry refresh property : null

El argumento --format-json también acepta un formato personalizado opcional utilizando la sintaxis de cadena de formato. Para obtener más información, consulte Sintaxis de cadena de formato.

En el ejemplo siguiente se muestra cómo usar la sintaxis de cadena de formato:

# Custom format
$ az spring app logs --name auth-service --format-json="{message}{n}"
Disable delta property : false
Single vip registry refresh property : null

El formato predeterminado que se usa es el siguiente:

{timestamp} {level:>5} [{thread:>15.15}] {logger{39}:<40.40}: {message}{n}{stackTrace}

Streaming de un registro de aplicaciones de Azure Spring Apps en una instancia de inyección de red virtual

En el caso de una instancia de Azure Spring Apps implementada en una red virtual personalizada, puede acceder al streaming de registro de forma predeterminada desde una red privada. Para más información, consulte Implementación de Azure Spring Apps en una red virtual

Azure Spring Apps también le permite acceder a los registros de aplicaciones en tiempo real desde una red pública mediante Azure Portal o la CLI de Azure.

Nota:

Al habilitar el punto de conexión de streaming de registro en la red pública, se agrega una dirección IP de entrada pública a la red virtual. Asegúrese de tener cuidado si esto es una preocupación para usted.

Siga estos pasos para habilitar un punto de conexión de streaming de registro en la red pública:

  1. Seleccione la instancia de servicio de Azure Spring Apps implementada en la red virtual y, a continuación, seleccione Redes en el menú de navegación.

  2. Seleccione la pestaña Inyección de red virtual.

  3. Cambie el estado de Recursos de Dataplane en la red pública a Habilitar para habilitar un punto de conexión de streaming de registro en la red pública. Este proceso tarda unos minutos.

    Captura de pantalla de Azure Portal que muestra la página Redes con la pestaña Inserción de red virtual seleccionada y la sección Solución de problemas resaltada.

Una vez que habilitó el punto de conexión público de streaming de registro, acceda al registro de aplicaciones desde una red pública del mismo modo que lo haría a una instancia normal.

Protección del tráfico al punto de conexión público de streaming de registro

El streaming de registro usa la misma clave que el punto de conexión de prueba descrito en Configuración de un entorno de ensayo en Azure Spring Apps para autenticar las conexiones a las implementaciones. Como resultado, solo los usuarios con acceso de lectura a las claves de prueba podrán acceder al streaming de registro.

Para garantizar la seguridad de las aplicaciones al exponer un punto de conexión público para ellas, proteja el punto de conexión filtrando el tráfico de red al servicio con un grupo de seguridad de red. Para obtener más información, consulte el Tutorial: Filtrado del tráfico de red con un grupo de seguridad de red mediante Azure Portal. Un grupo de seguridad de red contiene reglas de seguridad que permiten o deniegan el tráfico de red entrante o el tráfico de red saliente de varios tipos de recursos de Azure. En todas las reglas, puede especificar un origen y destino, un puerto y un protocolo.

Nota:

Si no es posible acceder a los registros de aplicación en la instancia de inyección de red virtual desde Internet tras haber habilitado un punto de conexión público de streaming de registro, compruebe el grupo de seguridad de red para ver si permitió este tráfico entrante.

En la tabla siguiente se muestra un ejemplo de una regla básica que se recomienda. Puede usar comandos como nslookup con el punto de conexión <service-name>.private.azuremicroservices.io para obtener la dirección IP de destino de un servicio.

Priority Nombre Puerto Protocolo Origen Destino Acción
100 Nombre de la regla 80 TCP Internet Dirección IP del servicio Permitir
110 Nombre de la regla 443 TCP Internet Dirección IP del servicio Permitir

Pasos siguientes