Envoyer en streaming les journaux de console d’application Azure Spring Apps en temps réel
Remarque
Azure Spring Apps est le nouveau nom du service Azure Spring Cloud. Bien que le service ait un nouveau nom, vous verrez l’ancien nom à divers endroits pendant un certain temps, car nous travaillons à mettre à jour les ressources telles que les captures d’écran, les vidéos et les diagrammes.
Cet article s’applique à : ✔️ Java ✔️ C#
Cet article s’applique au : Niveau ✔️ De base/Standard ✔️ Entreprise
Cet article explique comment activer le streaming de journaux dans Azure CLI afin d’obtenir des journaux de console d’application en temps réel pour la résolution des problèmes. Vous pouvez également utiliser les paramètres de diagnostic pour analyser les données de diagnostic dans Azure Spring Apps. Pour plus d’informations, consultez Analyser les journaux et les métriques avec les paramètres de diagnostic. Pour plus d’informations sur le streaming de journaux, consultez Envoyer en streaming les journaux des travaux Azure Spring Apps en temps réel et Envoyer en streaming les journaux des composants managés Azure Spring Apps en temps réel.
Prérequis
- Azure CLI avec l’extension Azure Spring Apps version 1.0.0 ou ultérieure. Vous pouvez installer cette extension à l’aide de la commande suivante :
az extension add --name spring
. - Une instance de Azure Spring Apps avec une application en cours d’exécution. Pour plus d’informations, consultez Démarrage rapide : Déployer votre première application sur Azure Spring Apps.
Utiliser Azure CLI pour produire les dernières lignes des journaux
Cette section fournit des exemples d’utilisation d’Azure CLI pour produire les dernières lignes des journaux. Pour éviter de spécifier à plusieurs reprises le nom de votre groupe de ressources et de votre instance de service, utilisez les commandes suivantes pour définir le nom de votre groupe de ressources et le nom du cluster par défaut :
az config set defaults.group=<service-group-name>
az config set defaults.spring=<service-instance-name>
Le groupe de ressources et le nom du service sont omis dans les exemples suivants.
Afficher les dernières lignes du journal d’une application avec une seule instance
Si une application nommée auth-service
ne dispose que d’une seule instance, vous pouvez afficher le journal de l’instance de l’application à l’aide de la commande suivante :
az spring app logs --name <application-name>
La commande retourne des journaux comme dans les exemples suivants, où auth-service
est le nom de l’application.
...
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
...
Afficher les dernières lignes du journal d’une application avec plusieurs instances
Si plusieurs instances existent pour l’application nommée auth-service
, vous pouvez afficher le journal des instances à l’aide de l’option -i/--instance
.
Tout d’abord, exécutez la commande suivante pour obtenir les noms d’instance d’application :
az spring app show --name auth-service --query properties.activeDeployment.properties.instances --output table
La commande produit des résultats similaires à la sortie suivante :
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
Ensuite, vous pouvez diffuser en continu des journaux d’une instance d’application avec l’option -i/--instance
, comme suit :
az spring app logs --name auth-service --instance auth-service-default-12-75cc4577fc-pw7hb
Vous pouvez également obtenir des informations sur les instances d’application à partir du portail Azure. Après avoir sélectionné Applications dans le volet de navigation gauche de votre service Azure Spring Apps, sélectionnez instances de l’application.
Diffuser en continu de nouveaux journaux
Par défaut, az spring app logs
imprime uniquement les journaux existants diffusés en continu à la console d’application, puis se ferme. Si vous souhaitez envoyer en streaming de nouveaux journaux, ajoutez l’argument -f/--follow
, comme illustré dans l’exemple suivant :
az spring app logs --name auth-service --follow
Lorsque vous utilisez l’argument --follow
pour les dernières lignes des journaux instantanés, le service de streaming de journaux Azure Spring Apps envoie des journaux de pulsation au client toutes les minutes, sauf si votre application écrit des journaux en continu. Les messages du journal des pulsations utilisent le format suivant : 2020-01-15 04:27:13.473: No log from server
.
Utilisez la commande suivante pour vérifier toutes les options de journalisation prises en charge :
az spring app logs --help
Formater les journaux structurés JSON
Remarque
La mise en forme des journaux structurés JSON nécessite l’extension Spring version 2.4.0 ou ultérieure.
Les journaux d’application structurés sont affichés au format JSON, ce qui peut être difficile à lire. Vous pouvez utiliser l’argument --format-json
pour mettre en forme les journaux au format JSON dans un format plus lisible. Pour plus d’informations, consultez le journal des applications structurées pour Azure Spring Apps.
L’exemple suivant explique comment utiliser l’argument --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
L’argument --format-json
accepte également un format personnalisé facultatif, à l’aide de la syntaxe de chaîne de format. Pour plus d’informations, consultez Syntaxe de chaîne de format.
L’exemple suivant explique comment utiliser la syntaxe de chaîne de format :
# Custom format
$ az spring app logs --name auth-service --format-json="{message}{n}"
Disable delta property : false
Single vip registry refresh property : null
Le format par défaut utilisé est :
{timestamp} {level:>5} [{thread:>15.15}] {logger{39}:<40.40}: {message}{n}{stackTrace}
Envoyer en streaming un journal d’application Azure Spring Apps dans une instance d’injection de réseau virtuel
Pour une instance Azure Spring Apps déployée dans un réseau virtuel personnalisé, vous pouvez accéder au streaming des journaux par défaut à partir d’un réseau privé. Pour plus d’informations, consultez Déploiement d’Azure Spring Apps dans un réseau virtuel
Azure Spring Apps vous permet également d’accéder aux journaux d’application en temps réel à partir d’un réseau public à l’aide du portail Azure ou d’Azure CLI.
Remarque
L’activation du point de terminaison de streaming de journaux sur le réseau public ajoute une IP entrante publique à votre réseau virtuel. Faites preuve de prudence si c’est une préoccupation pour vous.
Utilisez les étapes suivantes pour activer un point de terminaison de streaming de journaux sur le réseau public :
Sélectionnez l’instance du service Azure Spring Apps déployée dans votre réseau virtuel, puis sélectionnez Mise en réseau dans le menu de navigation.
Sélectionnez l’onglet Injection dans le VNet.
Définissez l’état de Ressources de plan de données sur le réseau public sur activer pour activer un point de terminaison de streaming de journaux sur le réseau public. Ce processus prend quelques minutes.
Une fois que vous avez activé le point de terminaison public du streaming de journaux, vous pouvez accéder au journal d’application à partir d’un réseau public, comme si vous accédiez à une instance normale.
Sécuriser le trafic vers le point de terminaison public de streaming de journaux
Le streaming de journaux utilise la même clé que le point de terminaison de test décrit dans Configurer un environnement intermédiaire dans Azure Spring Apps pour authentifier les connexions à vos déploiements. Par conséquent, seuls les utilisateurs disposant d’un accès en lecture aux clés de test peuvent accéder au streaming des journaux.
Pour garantir la sécurité de vos applications lorsque vous exposez un point de terminaison public pour eux, sécurisez le point de terminaison en filtrant le trafic réseau vers votre service avec un groupe de sécurité réseau. Pour plus d’informations, consultez Tutoriel : Filtrer le trafic réseau avec un groupe de sécurité réseau à l’aide du portail Azure. Un groupe de sécurité réseau contient des règles de sécurité qui autorisent ou refusent le trafic réseau entrant ou sortant en direction/à partir des différents types de ressources Azure. Pour chaque règle, vous pouvez spécifier la source et la destination, le port et le protocole.
Remarque
Si vous ne pouvez pas accéder aux journaux d’application dans l’instance d’injection de réseau virtuel à partir d’Internet une fois que vous avez activé un point de terminaison public de streaming de journaux, vérifiez votre groupe de sécurité réseau pour voir si vous avez autorisé ce trafic entrant.
Le tableau suivant présente un exemple de règle de base que nous recommandons. Vous pouvez utiliser des commandes comme nslookup
avec le point de terminaison <service-name>.private.azuremicroservices.io
pour obtenir l’adresse IP cible d’un service.
Priorité | Nom | Port | Protocole | Source | Destination | Action |
---|---|---|---|---|---|---|
100 | Nom de la règle | 80 | TCP | Internet | Adresse IP d’un service | Allow |
110 | Nom de la règle | 443 | TCP | Internet | Adresse IP d’un service | Allow |
Étapes suivantes
- Démarrage rapide : Monitoring d’Azure Spring Apps avec les journaux, les métriques et le suivi
- Analyser les journaux et les indicateurs de performance avec les paramètres de diagnostic
- Envoyer en streaming les journaux des travaux Azure Spring Apps en temps réel
- Transmettre en continu et en temps réel les journaux des composants managés d’Azure Spring Apps