Groupe de conteneurs et journalisation des instances de conteneur avec les journaux d’activité Azure Monitor
Les espaces de travail Log Analytics fournissent un emplacement centralisé pour le stockage et l’interrogation des données de journaux, non seulement à partir de ressources Azure, mais également à partir de ressources locales et d’autres clouds. Azure Container Instances inclut une prise en charge intégrée de l’envoi des journaux et des données d’événements aux journaux Azure Monitor.
Pour envoyer des données de journal et des données d’événements d’un groupe de conteneurs aux journaux Azure Monitor, indiquez une clé et un ID d’espace de travail Log Analytics lors de la configuration du groupe de conteneurs.
Les sections suivantes décrivent comment créer un groupe de conteneurs dans lequel la journalisation est activée et comment interroger des journaux. Vous pouvez également mettre à jour un groupe de conteneurs avec un ID d’espace de travail et une clé d’espace de travail pour activer la journalisation.
Notes
Cet article a récemment été mis à jour pour utiliser le terme journaux d’activité Azure Monitor au lieu de Log Analytics. Les données de journal sont toujours stockées dans un espace de travail Log Analytics, et elles sont toujours collectées et analysées par le même service Log Analytics. Nous mettons la terminologie à jour pour mieux refléter le rôle des journaux d’activité dans Azure Monitor. Pour plus d'informations, consultez Modifications de la terminologie d'Azure Monitor.
Prérequis
Pour activer la journalisation dans vos instances de conteneur, vous avez besoin des éléments prérequis suivants :
Obtenir les informations d’identification de Log Analytics
Azure Container Instances doit disposer d’une autorisation pour envoyer des données à votre espace de travail Log Analytics. Pour accorder cette autorisation et activer la journalisation, vous devez fournir l’ID d’espace de travail Log Analytics et une de ses clés (principale ou secondaire) lorsque vous créez le groupe de conteneurs.
Pour obtenir l’ID et la clé primaire de l’espace de travail Log Analytics :
- Accédez à votre espace de travail Log Analytics dans le portail Azure
- Sous Paramètres, sélectionnez Gestion des agents
- Notez :
- ID de l’espace de travail
- Clé primaire
Créer un groupe de conteneurs
Maintenant que vous disposez de l’ID et de la clé primaire de l’espace de travail Log Analytics, vous êtes prêt à créer un groupe de conteneurs dans lequel la journalisation est activée.
Les exemples suivants montrent deux façons de créer un groupe de conteneurs qui consiste en un seul conteneur Fluentd : Azure CLI et Azure CLI avec un modèle YAML. Le conteneur Fluentd produit plusieurs lignes de sortie dans sa configuration par défaut. Cette sortie étant envoyée à votre espace de travail Log Analytics, elle convient parfaitement à l’affichage et à l’interrogation des journaux d’activité.
Déploiement avec l’interface de ligne de commande Azure
Pour procéder au déploiement avec Azure CLI, spécifiez les paramètres --log-analytics-workspace
et --log-analytics-workspace-key
dans la commande az container create. Avant d’exécuter la commande suivante, remplacez les deux valeurs de l’espace de travail par celles que vous avez obtenues à l’étape précédente (et mettez à jour le nom du groupe de ressources).
Notes
L’exemple suivant tire (pull) une image conteneur publique à partir de Docker Hub. Nous vous recommandons de configurer un secret d’extraction pour l’authentification à l’aide d’un compte Docker Hub au lieu de créer une demande de tirage anonyme. Pour une plus grande fiabilité lors de l’utilisation de contenu public, importez et gérez l’image dans un registre de conteneurs Azure privé. En savoir plus sur l’utilisation des images publiques.
az container create \
--resource-group myResourceGroup \
--name mycontainergroup001 \
--image fluent/fluentd:v1.3-debian-1 \
--log-analytics-workspace <WORKSPACE_ID> \
--log-analytics-workspace-key <WORKSPACE_KEY>
Déployer avec YAML
Utilisez cette méthode si vous préférez déployer des groupes de conteneurs avec YAML. Le code YAML suivant définit un groupe de conteneurs à un seul conteneur. Copiez le code YAML dans un nouveau fichier, puis remplacez LOG_ANALYTICS_WORKSPACE_ID
et LOG_ANALYTICS_WORKSPACE_KEY
par les valeurs obtenues à l’étape précédente. Enregistrez le fichier sous le nom deploy-aci.yaml.
Notes
L’exemple suivant tire (pull) une image conteneur publique à partir de Docker Hub. Nous vous recommandons de configurer un secret d’extraction pour l’authentification à l’aide d’un compte Docker Hub au lieu de créer une demande de tirage anonyme. Pour une plus grande fiabilité lors de l’utilisation de contenu public, importez et gérez l’image dans un registre de conteneurs Azure privé. En savoir plus sur l’utilisation des images publiques.
apiVersion: 2019-12-01
location: eastus
name: mycontainergroup001
properties:
containers:
- name: mycontainer001
properties:
environmentVariables: []
image: fluent/fluentd:v1.3-debian-1
ports: []
resources:
requests:
cpu: 1.0
memoryInGB: 1.5
osType: Linux
restartPolicy: Always
diagnostics:
logAnalytics:
workspaceId: LOG_ANALYTICS_WORKSPACE_ID
workspaceKey: LOG_ANALYTICS_WORKSPACE_KEY
tags: null
type: Microsoft.ContainerInstance/containerGroups
Ensuite, exécutez la commande suivante pour déployer le groupe de conteneurs. Remplacez myResourceGroup
par un groupe de ressources de votre abonnement (ou créez d’abord un groupe de ressources nommé « myResourceGroup ») :
az container create --resource-group myResourceGroup --name mycontainergroup001 --file deploy-aci.yaml
Vous devriez recevoir une réponse à partir des détails du déploiement de conteneur Azure peu de temps après l’émission de la commande.
Afficher les journaux d’activité
Une fois le groupe de conteneurs déployé, l’affichage dans le Portail Azure des premières entrées de journal peut prendre plusieurs minutes (jusqu’à 10).
Pour voir les journaux du groupe de conteneurs dans la table ContainerInstanceLog_CL
:
- Accédez à votre espace de travail Log Analytics dans le portail Azure
- Sous Général, sélectionnez Journaux.
- Tapez la requête suivante :
ContainerInstanceLog_CL | limit 50
- Sélectionnez Exécuter.
Vous devez voir plusieurs résultats affichés par la requête. Si vous ne voyez aucun résultat dans un premier temps, patientez quelques minutes, puis sélectionnez le bouton Exécuter pour réexécuter la requête. Par défaut, les entrées de journal sont affichées au format Tableau. Vous pouvez ensuite développer une ligne pour afficher le contenu d’une entrée de journal.
Afficher les événements
Vous pouvez également voir les événements des instances de conteneur dans le portail Azure. Les événements incluent l’heure où l’instance est créée et où elle démarre. Pour voir les données d’événements dans la table ContainerEvent_CL
:
- Accédez à votre espace de travail Log Analytics dans le portail Azure
- Sous Général, sélectionnez Journaux.
- Tapez la requête suivante :
ContainerEvent_CL | limit 50
- Sélectionnez Exécuter.
Vous devez voir plusieurs résultats affichés par la requête. Si vous ne voyez aucun résultat dans un premier temps, patientez quelques minutes, puis sélectionnez le bouton Exécuter pour réexécuter la requête. Par défaut, les entrées sont affichées au format Tableau. Vous pouvez ensuite développer une ligne pour voir le contenu d’une entrée individuelle.
Interroger les journaux d’activité d’un conteneur
Les journaux Azure Monitor incluent un langage de requête étendu permettant de tirer (pull) les informations des milliers de lignes que peuvent contenir les journaux.
La structure de base d’une requête est la table source (dans cet article, ContainerInstanceLog_CL
ou ContainerEvent_CL
) suivie d’une série d’opérateurs séparés par une barre verticale (|
). Vous pouvez chaîner plusieurs opérateurs pour affiner les résultats et effectuer des fonctions avancées.
Pour voir des exemples de résultats de requête, collez la requête suivante dans la zone de texte de requête, puis sélectionnez le bouton Exécuter pour exécuter la requête. Cette requête affiche toutes les entrées de journal dont le champ « Message » contient le mot « Avertissement » :
ContainerInstanceLog_CL
| where Message contains "warn"
Des requêtes plus complexes sont également prises en charge. Par exemple, cette requête n’affiche que les entrées de journal pour le groupe de conteneurs « mycontainergroup001 » générées au cours de la dernière heure :
ContainerInstanceLog_CL
| where (ContainerGroup_s == "mycontainergroup001")
| where (TimeGenerated > ago(1h))
Schéma du journal
Pour en savoir plus sur le schéma hérité Azure Monitor pour Log Analytics, consultez les Tableaux Log Analytics héritées.
Utilisation des paramètres de diagnostic
Les tables plus récentes nécessitent l’utilisation des paramètres de diagnostic pour acheminer les informations vers Log Analytics. Les fonctionnalités de paramètres de diagnostic pour Container Instances sont en préversion publique. Vous pouvez les activer au travers des options relatives aux fonctionnalités d’évaluation dans le Portail Azure.
Pour en savoir plus, consultez Tables Log Analytics Azure Monitor.
Étapes suivantes
Journaux d’activité Azure Monitor
Pour plus d’informations sur l’interrogation des journaux d’activité et la configuration d’alertes dans les journaux d’activité Azure Monitor, consultez :
- Présentation des recherches dans les journaux d’activité Azure Monitor
- Alertes unifiées dans Azure Monitor
Surveiller le processeur et la mémoire du conteneur
Pour plus d’informations sur la surveillance des ressources processeur et mémoire de l’instance de conteneur, consultez :