Une fois Docker déployé sur un serveur, vous pouvez collecter des journaux à des fins d'interrogation et d'analyse. Les journaux Docker se divisent en deux catégories : la sortie standard et les journaux de fichiers. Les journaux de fichiers sont générés au sein d'un conteneur et écrits dans un répertoire spécifique sur le serveur. La sortie standard correspond au flux de sortie en temps réel du conteneur. Cette rubrique explique comment utiliser Logtail pour collecter la sortie standard d'un conteneur vers un logstore.
Présentation
Après avoir installé Docker sur un hôte, utilisez Logtail pour collecter les journaux de sortie standard (stdout) et d'erreur standard (stderr) provenant des conteneurs d'applications déployés dans l'environnement Docker. Les données de journal collectées sont envoyées vers un logstore pour faciliter leur interrogation et leur analyse.
Prérequis
Un projet et un logstore ont été créés. Pour plus d'informations, consultez les rubriques Gérer les projets et Gérer les Logstores.
-
L'hôte doit avoir installé et utiliser Docker et Docker Compose et pouvoir générer continuellement des journaux de sortie standard.
RemarqueLogtail collecte uniquement les journaux incrémentiels. Si un fichier journal n'est pas mis à jour après l'application d'une configuration Logtail, Logtail ne collecte pas les journaux de ce fichier. Pour plus d'informations, consultez la rubrique Lire les journaux.
Étape 1 : Installer un conteneur Logtail et créer un groupe de machines
-
Téléchargez l'image Logtail.
Connectez-vous à l'hôte. Selon la région de votre projet Simple Log Service, obtenez l'identifiant
${region_id}correspondant. Remplacez ensuite l'espace réservé${region_id}dans la commande suivante et exécutez-la pour télécharger l'image Logtail.ImportantPour connaître l'identifiant
${region_id}de chaque région, consultez la rubrique Régions et zones. Par exemple, l'identifiant${region_id}pour la région Chine (Hangzhou) estcn-hangzhou.
#Pull the Logtail image: docker pull registry.${region_id}.aliyuncs.com/log-service/logtail:v2.1.11.0-aliyun #If your server is in an Alibaba Cloud VPC, run the following command to pull the Logtail image: docker pull registry-vpc.${region_id}.aliyuncs.com/log-service/logtail:v2.1.11.0-aliyun -
Démarrez le conteneur Logtail.
-
Descriptions des paramètres
Paramètre
Description
${region_id}Obtenez l'identifiant
${region_id}correspondant à la région de votre projet Simple Log Service. Pour connaître l'identifiant${region_id}de chaque région, consultez la rubrique Régions disponibles. Pour sélectionner un type de réseau, consultez la rubrique Types de réseaux Logtail, paramètres de démarrage et configuration.Par exemple, si un projet se trouve dans la région Chine (Hangzhou), l'identifiant
${region_id}estcn-hangzhoupour l'accès via le réseau interne Alibaba Cloud etcn-hangzhou-internetpour l'accès via le réseau public.
${aliyun_account_id}ID du compte Alibaba Cloud auquel appartient Simple Log Service. Pour savoir comment obtenir cet ID, consultez la rubrique Obtenir l'ID d'un compte Alibaba Cloud.
${user_defined_id}Spécifie l'identifiant personnalisé du groupe de machines, par exemple
user-defined-docker-1. L'identifiant doit être unique dans la région où se trouve le projet. -
En vous basant sur les descriptions des paramètres, remplacez les espaces réservés
${region_id},${aliyun_account_id}et${user_defined_id}dans le modèle de commande. Exécutez ensuite la commande pour démarrer le conteneur Logtail.# Start the Logtail container. Replace ${region_id}, ${aliyun_account_id}, and ${user_defined_id}. docker run -d \ -v /:/logtail_host:ro \ -v /var/run/docker.sock:/var/run/docker.sock \ --env ALIYUN_LOGTAIL_CONFIG=/etc/ilogtail/conf/${region_id}/ilogtail_config.json \ --env ALIYUN_LOGTAIL_USER_ID=${aliyun_account_id} \ --env ALIYUN_LOGTAIL_USER_DEFINED_ID=${user_defined_id} \ registry.${region_id}.aliyuncs.com/log-service/logtail:v2.1.11.0-aliyunImportantPersonnalisez les paramètres de démarrage du conteneur Logtail uniquement si les conditions suivantes sont remplies.
Au démarrage, configurez les variables d'environnement
ALIYUN_LOGTAIL_CONFIG,ALIYUN_LOGTAIL_USER_IDetALIYUN_LOGTAIL_USER_DEFINED_ID.Montez le répertoire
/var/runde l'hôte vers le répertoire/var/rundu conteneur Logtail.Montez le répertoire racine de l'hôte vers le répertoire
/logtail_hostdu conteneur Logtail.Si le message d'erreur
The parameter is invalid : uuid=noneapparaît dans le journal Logtail (/usr/local/ilogtail/ilogtail.LOG), créez un fichierproduct_uuidsur l'hôte. Saisissez ensuite un UUID valide, tel que169E98C9-ABC0-4A92-B1D2-AA6239C0D261, dans ce fichier et montez-le vers le répertoire/sys/class/dmi/id/product_uuiddu conteneur Logtail.
Exécutez la commande
docker pspour vérifier si le conteneur a démarré avec succès.
-
-
Créez un groupe de machines avec un identifiant personnalisé.
Connectez-vous à la console Simple Log Service. Dans la section Projects, cliquez sur le projet souhaité.
Dans le volet de navigation de gauche, choisissez . Dans la liste Machine Groups, choisissez .

-
Sur la page Create Machine Group, saisissez un Name. Sélectionnez Custom Identifier comme identifiant du groupe de machines. Dans le champ Custom Identifier, saisissez la valeur du paramètre
${user_defined_id}de l'étape 1, par exempleuser-defined-docker-1.
Paramètre
Description
Machine Group Topic
Facultatif. Le topic sert à identifier les journaux générés par différents serveurs.
-
Vérifiez l'état du groupe de machines.
Dans la liste des groupes de machines, cliquez sur le groupe cible. Sur la page de configuration du groupe de machines, consultez la configuration du groupe et l'état du serveur.

Si l'état Heartbeat est OK, la configuration a réussi. Si l'état est FAIL, attendez une minute puis cliquez sur Refresh. Si l'état Heartbeat reste FAIL, vérifiez les points suivants :
Le conteneur Logtail et le projet se trouvent-ils dans la même région ?
Le groupe de sécurité de l'hôte autorise-t-il le trafic sortant de Logtail ? Le port par défaut est 80.
Pour plus d'informations sur le dépannage de ce problème, consultez la rubrique Résoudre les problèmes de collecte de journaux de conteneurs.
Étape 2 : Créer une configuration Logtail
Sous l'onglet , cliquez sur le logstore souhaité.
Dans la barre de menu des Logstores, cliquez sur Logtail Configurations, puis sur Add Logtail Configuration.

Sur la page Quick Data Import, cliquez sur Docker Stdout and Stderr - Old Version.

Comme vous avez créé un groupe de machines à l'étape 1, cliquez sur Use Existing Machine Groups.

À l'étape Machine Group Configurations, sélectionnez le groupe de machines créé à l'étape 1, cliquez sur > pour l'ajouter aux groupes de machines appliqués, puis cliquez sur Next.

À l'étape Logtail Configuration, saisissez un Configuration Name, puis cliquez sur Next.

À l'étape Query and Analysis Configurations, cliquez sur Refresh pour prévisualiser les journaux collectés. Si aucun journal ne s'affiche, assurez-vous que le conteneur génère continuellement des journaux de sortie standard. Par défaut, la sortie standard est stockée dans /var/lib/docker/containers/<Container ID>/<Container ID>-json.log. Si vous ne parvenez toujours pas à prévisualiser les journaux, consultez la rubrique Résoudre les erreurs de collecte de journaux de conteneurs.

Étape 3 : Afficher les résultats
Logtail collecte uniquement les journaux incrémentiels. Si aucun nouveau journal n'est généré pour la sortie standard après l'application de la configuration Logtail, Logtail ne collecte pas les journaux précédents. Pour plus d'informations, consultez la rubrique Lire les journaux.

Par défaut, chaque journal de sortie standard Docker collecté contient les champs suivants :
|
Champ |
Description |
|
__source__ |
L'adresse IP du conteneur Logtail. |
|
__tag__:__hostname__ |
Le nom de l'hôte Docker sur lequel se trouve Logtail. |
|
__tag__:__receive_time__ |
L'heure d'arrivée du journal sur le serveur. |
|
_time_ |
L'heure de chargement des données. Exemple : |
|
_source_ |
Le type de source d'entrée, stdout ou stderr. |
|
_image_name_ |
Le nom de l'image. |
|
_container_name_ |
Le nom du conteneur. |
|
_container_ip_ |
L'adresse IP du conteneur d'application. |
Références
Pour savoir comment afficher l'état d'exécution de Logtail, consultez la rubrique Afficher l'état de Logtail.
Pour en savoir plus sur l'utilisation de Docker, consultez la rubrique Installer et utiliser Docker et Docker Compose.
Pour collecter des journaux texte à partir de conteneurs Docker, consultez la rubrique Collecter les journaux des conteneurs Docker (sortie standard et fichiers).
Pour collecter des journaux texte depuis l'hôte, consultez la rubrique Collecter les journaux texte de l'hôte. Par défaut, le répertoire racine de l'hôte est monté sur le répertoire
/logtail_hostdu conteneur Logtail.Une fois les journaux chargés dans un logstore, vous devez créer des index avant de pouvoir interroger et analyser les journaux. Pour plus d'informations, consultez les rubriques Créer des index et Guide de démarrage rapide pour l'interrogation et l'analyse des journaux.
Si une exception se produit lors de la collecte des journaux de conteneurs Docker avec Logtail, consultez la rubrique Résoudre les problèmes de collecte de journaux de conteneurs.
> Create Machine Group