Utilisez LoongCollector pour collecter les journaux des conteneurs Docker (stdout et fichiers) dans un seul Logstore SLS afin de centraliser le stockage, l'analyse structurée, le filtrage et l'exploration des données.
Notes d'utilisation
Prérequis en matière d'autorisations : Le compte Alibaba Cloud ou l'utilisateur RAM que vous utilisez pour le déploiement doit disposer de l'autorisation
AliyunLogFullAccess.-
Version de Docker et prérequis pour LoongCollector :
Si votre version de Docker Engine est 29.0 ou ultérieure, ou si la version minimale prise en charge de l'API Docker est 1.42 ou ultérieure, vous devez utiliser LoongCollector 3.2.4 ou une version ultérieure. Dans le cas contraire, LoongCollector ne pourra pas collecter les sorties standard des conteneurs ni les journaux de fichiers.
Les versions 3.2.4 et ultérieures de LoongCollector prennent en charge les versions de l'API Docker allant de 1.24 à 1.48.
Les versions 3.2.3 et antérieures de LoongCollector prennent en charge les versions de l'API Docker allant de 1.18 à 1.41.
-
Limites liées à la collecte de la sortie standard :
Vous devez ajouter
"log-driver": "json-file"au fichier de configuration Docker, daemon.json.Pour CentOS 7.4 et versions ultérieures, à l'exception de CentOS 8.0, vous devez définir
fs.may_detach_mounts=1.
Limitations de la collecte des journaux texte : Seuls les pilotes de stockage overlay et overlay2 sont pris en charge. Pour les autres types de pilotes, vous devez monter manuellement le répertoire des journaux.
Aperçu du flux de travail
Preparations: Créez un projet et un logstore. Un projet est une unité de gestion des ressources utilisée pour isoler les journaux de différentes applications, tandis qu'un logstore sert à stocker les journaux.
Configure a machine group (install LoongCollector): Installez LoongCollector sur les hôtes Docker et ajoutez-les à un groupe de machines pour la distribution centralisée de la configuration et la surveillance de l'état.
-
Create and configure log collection rules
Global and input configuration : Définissez le nom de la configuration de collecte, ainsi que la source et la portée de la collecte des journaux.
-
Log processing and structuring : Configurez des règles de traitement en fonction du format des journaux.
Journaux multilignes : Cela s'applique aux journaux uniques qui s'étendent sur plusieurs lignes, tels que les piles d'exceptions Java ou les tracebacks Python. Vous devez utiliser une expression régulière pour identifier le début de chaque journal.
Analyse structurée : Configurez des plug-ins d'analyse, tels que le plug-in d'expression régulière, de séparateur ou de mode NGINX, pour extraire les chaînes brutes sous forme de paires clé-valeur structurées. Cela facilite les requêtes et l'analyse ultérieures.
Log filtering : Configurez des listes noires de collecte et des règles de filtrage de contenu pour sélectionner le contenu de journal valide. Cette pratique réduit la transmission et le stockage de données redondantes.
Log categorization : Configurez des sujets et des tags de journal pour distinguer de manière flexible les journaux provenant de différentes applications, conteneurs ou sources de chemin d'accès.
Query and analysis configuration : L'indexation en texte intégral est activée par défaut. Activez l'indexation des champs pour effectuer des requêtes précises sur les champs structurés.
Validation and troubleshooting : Une fois la configuration terminée, vérifiez que les journaux sont bien collectés. Si vous rencontrez des problèmes tels que l'absence de collecte de données, des échecs de heartbeat ou des erreurs d'analyse, consultez la section FAQ.
Préparatifs
Créez un projet et un Logstore pour stocker les journaux. Si vous disposez déjà de ces ressources, passez directement à l'étape Étape 1 : Configurer un groupe de machines (installer LoongCollector).
Créer un projet
Créer un logstore
Étape 1 : Configurer un groupe de machines (installer LoongCollector)
Déployez LoongCollector en tant que conteneur sur l'hôte Docker et ajoutez-le à un groupe de machines.
-
Tirer l'image
Sur un hôte disposant de Docker installé, exécutez la commande suivante pour tirer l'image LoongCollector. Remplacez
${region_id}par l'ID de région de l'hôte ou d'une région voisine, par exemplecn-hangzhou, afin d'améliorer la vitesse et la stabilité du téléchargement.# LoongCollector image address docker pull aliyun-observability-release-registry.${region_id}.cr.aliyuncs.com/loongcollector/loongcollector:v3.0.12.0-25723a1-aliyun # Logtail image address docker pull registry.${region_id}.aliyuncs.com/log-service/logtail:v2.1.11.0-aliyun -
Démarrer le conteneur LoongCollector
Exécutez la commande suivante pour démarrer le conteneur. Assurez-vous de monter correctement les répertoires et de définir les variables d'environnement requises :
docker run -d \ -v /:/logtail_host:ro \ -v /var/run/docker.sock:/var/run/docker.sock \ --env ALIYUN_LOGTAIL_CONFIG=/etc/ilogtail/conf/${sls_upload_channel}/ilogtail_config.json \ --env ALIYUN_LOGTAIL_USER_ID=${aliyun_account_id} \ --env ALIYUN_LOGTAIL_USER_DEFINED_ID=${user_defined_id} \ aliyun-observability-release-registry.${region_id}.cr.aliyuncs.com/loongcollector/loongcollector:v3.0.12.0-25723a1-aliyunDescription des paramètres :
-
${sls_upload_channel}: Le canal de téléchargement des journaux. Le format est Projet Région-Type de transfert réseau. Exemple :Type de transfert
Format de la valeur de configuration
Exemple
Scénarios
Transfert via le réseau interne
regionIdcn-hangzhouL'instance ECS et le projet se trouvent dans la même région.
Transfert via Internet
regionId-internetcn-hangzhou-internet-
L'instance ECS et le projet se trouvent dans des régions différentes.
-
Le serveur provient d'un autre fournisseur de cloud ou d'un centre de données autonome.
Accélération du transfert
regionId-accelerationcn-hangzhou-accelerationCommunication interrégionale au sein et en dehors de la Chine.
-
${aliyun_account_id}: L'ID du compte Alibaba Cloud.-
${user_defined_id}: L'ID personnalisé du groupe de machines. Cet ID est utilisé pour lier le groupe de machines. Par exemple, utilisezuser-defined-docker-1. L'ID doit être unique au sein de la région.ImportantLes conditions de démarrage suivantes doivent être respectées :
-
Les trois variables d'environnement clés sont correctement configurées :
ALIYUN_LOGTAIL_CONFIG,ALIYUN_LOGTAIL_USER_IDetALIYUN_LOGTAIL_USER_DEFINED_ID. Le répertoire
/var/run/docker.sockest monté. Ce répertoire est utilisé pour écouter les événements du cycle de vie des conteneurs.Le répertoire racine
/est monté sur/logtail_host. Cela permet d'accéder au système de fichiers de l'hôte.
-
-
-
Vérifier l'état d'exécution du conteneur
docker ps | grep loongcollectorExemple de sortie attendue :
6ad510001753 aliyun-observability-release-registry.cn-beijing.cr.aliyuncs.com/loongcollector/loongcollector:v3.0.12.0-25723a1-aliyun "/usr/local/ilogtail…" About a minute ago Up About a minute recursing_shirley -
Configurer le groupe de machines
Dans le volet de navigation de gauche, sélectionnez , cliquez sur , configurez les paramètres suivants et cliquez sur OK :
Name : Saisissez un nom personnalisé pour le groupe de machines, par exemple
docker-host-group.Machine Group Identifier : Sélectionnez Custom Identifier.
Custom Identifier : Saisissez l'
${user_defined_id}que vous avez défini lors du démarrage du conteneur. L'ID doit correspondre exactement. Sinon, l'association échouera.
-
Vérifier l'état du heartbeat du groupe de machines
Cliquez sur le nom du nouveau groupe de machines pour accéder à la page des détails et vérifier l' :
OK: Indique que LoongCollector est connecté à SLS.
Étape 2 : Créer et configurer des règles de collecte de journaux
Définissez les sources de journaux, les règles d'analyse, les filtres de contenu et les liaisons de groupes de machines.
Sur la page
Logstores, cliquez sur l'icône
située à côté du nom du logstore cible.-
Cliquez sur
à côté de Data Collection. Dans la boîte de dialogue Quick Data Import , sélectionnez un modèle en fonction de la source des journaux et cliquez sur Integrate Now .-
Sortie standard Docker : Sélectionnez Docker Stdout and Stderr - New Version .
Deux modèles (ancien et nouveau) sont disponibles pour la sortie standard des conteneurs. Utilisez la nouvelle version. Pour connaître les différences entre les versions, consultez la section Annexe : Comparaison des anciennes et nouvelles versions de la sortie standard des conteneurs . Pour l'ancienne version : Collecter la sortie standard des conteneurs Docker (Ancienne version) .
Journaux de fichiers Docker : Sélectionnez Docker File - Container .
-
-
Configurez le Machine Group et cliquez sur Next .
Scenario : Sélectionnez Docker Containers .
Déplacez le groupe de machines que vous avez créé à l'Étape 1 de la liste des groupes de machines sources vers la liste des groupes de machines appliqués.
Sur la page Logtail Configuration , configurez les paramètres suivants et cliquez sur Next .
1. Configurations globales et d'entrée
Définissez le nom de la configuration de collecte, la source des journaux et la portée de la collecte.
Collecter la sortie standard Docker
Global Configurations
-
Configuration Name : Saisissez un nom personnalisé pour la configuration de collecte. Le nom doit être unique au sein du projet et ne peut pas être modifié après la création de la configuration. Le nom doit respecter les conventions suivantes :
Il ne peut contenir que des lettres minuscules, des chiffres, des traits d'union (-) et des traits de soulignement (_).
Il doit commencer et se terminer par une lettre minuscule ou un chiffre.
Input Configurations
-
Activez le commutateur Stdout and Stderr ou Standard Error . Les deux commutateurs sont activés par défaut.
ImportantN'activez pas simultanément la sortie standard et l'erreur standard. Cela pourrait entraîner une confusion dans les journaux collectés.
Collecter les journaux texte des conteneurs Docker
Global Configurations :
-
Configuration Name : Saisissez un nom personnalisé pour la configuration de collecte. Le nom doit être unique au sein du projet et ne peut pas être modifié après la création de la configuration. Le nom doit respecter les conventions suivantes :
Il ne peut contenir que des lettres minuscules, des chiffres, des traits d'union (-) et des traits de soulignement (_).
Il doit commencer et se terminer par une lettre minuscule ou un chiffre.
Input Configurations :
-
File Path Type :
Path in Container : Collecter les fichiers journaux depuis l'intérieur du conteneur.
Host Path : Collecter les journaux depuis les services locaux sur l'hôte.
-
File Path : Le chemin absolu du fichier journal à collecter.
Linux : Le chemin doit commencer par une barre oblique (
/). Par exemple,/data/mylogs/**/*.logindique tous les fichiers ayant l'extension .log dans le répertoire/data/mylogs.Windows : Le chemin doit commencer par une lettre de lecteur. Par exemple,
C:\Program Files\Intel\**\*.Log.
-
Maximum Directory Monitoring Depth : La profondeur maximale de répertoire que le caractère générique
**peut correspondre dans le File Path . La valeur par défaut est 0, ce qui indique le répertoire actuel. La valeur peut aller de 0 à 1000.Nous vous recommandons de définir ce paramètre sur 0 et de configurer le chemin vers le répertoire contenant le fichier.
2. Traitement et structuration des journaux
Configurez des règles de traitement pour structurer les journaux bruts afin de faciliter les requêtes. Ajoutez un exemple de journal avant de configurer les règles :
Dans la section Processor Configurations de la page Logtail Configuration , cliquez sur Add Log Sample et saisissez le contenu du journal à collecter. Le système identifie le format du journal en fonction de l'exemple et vous aide à générer des expressions régulières et des règles d'analyse. Cela simplifie la configuration.
Scénario 1 : Traitement des journaux multilignes (tels que les journaux de pile Java)
Les piles d'exceptions Java et les journaux JSON multilignes sont divisés par défaut en enregistrements incomplets. Activez le mode multiligne et configurez une expression régulière pour la première ligne afin de fusionner les lignes consécutives en entrées de journal complètes.
Effet de l'exemple :
|
Journal brut sans aucun traitement |
En mode de collecte par défaut, chaque ligne est traitée comme un journal indépendant, ce qui fragmente les informations de la pile et perd le contexte |
Avec le mode multiligne activé, une expression régulière pour le début de la ligne identifie le journal complet, préservant ainsi la structure sémantique complète. |
|
|
|
|
Configuration : Dans la section Processor Configurations de la page Logtail Configuration , activez Multi-line Mode :
-
Type : Sélectionnez Custom ou Multi-line JSON .
-
Custom : Le format du journal brut n'est pas fixe. Vous devez configurer une Regex to Match First Line pour identifier la ligne de départ de chaque entrée de journal.
-
Regex to Match First Line : Prend en charge la génération automatique ou la saisie manuelle. L'expression régulière doit correspondre à une ligne complète de données. Par exemple, l'expression régulière de correspondance dans l'exemple précédent est
\[\d+-\d+-\w+:\d+:\d+,\d+]\s\[\w+]\s.*.Génération automatique : Cliquez sur Generate . Ensuite, dans la zone de texte Log Sample , sélectionnez le contenu du journal à extraire et cliquez sur Automatically Generate .
Saisie manuelle : Cliquez sur Manually Enter Regular Expression . Après avoir saisi l'expression, cliquez sur Validate .
-
Multi-line JSON : Si les journaux bruts sont tous au format JSON standard, SLS gère automatiquement les sauts de ligne au sein d'un seul journal JSON.
-
-
Processing Method If Splitting Fails :
Discard : Si un morceau de texte ne correspond pas à la règle de début de ligne, il est ignoré.
Retain Single Line : Le texte non correspondant est découpé et conservé dans le mode de ligne unique d'origine.
Scénario 2 : Journalisation structurée
Pour les journaux non structurés tels que les journaux d'accès NGINX, les plug-ins d'analyse SLS convertissent le texte brut en paires clé-valeur structurées pour une analyse et des alertes efficaces.
Effet de l'exemple :
|
Journaux bruts |
Journaux analysés |
|
|
Étapes de configuration : Dans la section Processor Configurations de la page Logtail Configuration :
Ajouter un plug-in d'analyse : Cliquez sur Add Processor et configurez un plug-in tel que l'analyse par expression régulière, l'analyse par séparateur ou l'analyse JSON qui correspond au format du journal. Par exemple, pour collecter les journaux NGINX, sélectionnez .
-
NGINX Log Configuration : Copiez la définition complète de
log_formatdepuis le fichier de configuration du serveur NGINX (nginx.conf) et collez-la dans cette zone de texte.Exemple :
log_format main '$remote_addr - $remote_user [$time_local] "$request" ''$request_time $request_length ''$status $body_bytes_sent "$http_referer" ''"$http_user_agent"';ImportantLa définition du format doit être exactement identique au format utilisé pour générer les journaux sur le serveur. Sinon, l'analyse des journaux échouera.
-
Paramètres courants : Les paramètres suivants apparaissent dans plusieurs plug-ins d'analyse de données. Leurs fonctions et leur utilisation sont cohérentes.
Original Field : Le nom du champ source à analyser. La valeur par défaut est
content, qui indique l'intégralité du contenu du journal collecté.Retain Original Field if Parsing Fails : Activez ce commutateur. Si l'analyse échoue en raison d'une incompatibilité de format, le contenu du journal d'origine est conservé dans le champ brut spécifié.
Retain Original Field if Parsing Succeeds : Si vous sélectionnez cette option, le contenu du journal d'origine est conservé même si le journal est analysé avec succès.
3. Filtrage des journaux
La collecte de journaux à faible valeur ajoutée (DEBUG, INFO) gaspille de l'espace de stockage et augmente les coûts. Utilisez le filtrage pour ne collecter que les journaux pertinents.
Réduire les coûts grâce au filtrage par contenu
Filtrez les journaux en fonction du contenu des champs. Par exemple, collectez uniquement les journaux de niveau WARNING ou ERROR.
Exemple d'effet :
|
Journal brut sans aucun traitement |
Collecter uniquement les journaux |
|
|
Étapes de configuration : Dans la section Processor Configurations de la page Logtail Configuration :
Cliquez sur Add Processor et sélectionnez :
Field Name : Le champ de journal à utiliser pour le filtrage.
Field Value : L'expression régulière à utiliser pour le filtrage. Seule la correspondance intégrale est prise en charge. La correspondance partielle par mot-clé n'est pas prise en charge.
Contrôler l'étendue de la collecte avec une liste noire
Utilisez une liste noire pour exclure des répertoires ou des fichiers spécifiques. Cela empêche le téléchargement de journaux non pertinents ou sensibles.
Étapes de configuration : Dans la section Input Configurations de la page Logtail Configuration, activez Collection Blacklist et cliquez sur Add.
La correspondance intégrale et la correspondance avec caractères génériques sont prises en charge pour les répertoires et les noms de fichiers. Les caractères génériques pris en charge sont l'astérisque (*) et le point d'interrogation (?).
-
File Path Blacklist : Les chemins de fichier à ignorer. Exemple :
/home/admin/private*.log: Ignore tous les fichiers du répertoire/home/admin/qui commencent par « private » et se terminent par « .log » lors de la collecte./home/admin/private*/*_inner.log: Ignore les fichiers se terminant par « _inner.log » dans les répertoires commençant par « private » sous le répertoire/home/admin/lors de la collecte.
-
File Blacklist : Les noms de fichiers à ignorer lors de la collecte. Exemple :
app_inner.log: Ignore tous les fichiers nommésapp_inner.loglors de la collecte.
-
Directory Blacklist : Le chemin du répertoire ne doit pas se terminer par une barre oblique (
/). Exemple :/home/admin/dir1/: La liste noire des répertoires ne prend pas effet./home/admin/dir*: Ignore les fichiers dans tous les sous-répertoires du répertoire/home/admin/qui commencent par « dir » lors de la collecte./home/admin/*/dir: Ignore tous les fichiers dans les sous-répertoires nommés « dir » au deuxième niveau du répertoire/home/admin/lors de la collecte. Par exemple, les fichiers du répertoire/home/admin/a/dirsont ignorés, tandis que les fichiers du répertoire/home/admin/a/b/dirsont collectés.
Filtrage des conteneurs
Définissez des conditions de collecte basées sur les métadonnées des conteneurs, telles que les variables d'environnement, les étiquettes de pod, les namespaces et les noms de conteneur, afin de contrôler précisément quels journaux de conteneurs sont collectés.
Étapes de configuration : Dans la section Processor Configurations de la page Logtail Configuration, activez Container Filtering et cliquez sur Add.
Plusieurs conditions sont combinées à l'aide de l'opérateur logique AND. Toutes les correspondances d'expressions régulières sont basées sur le moteur d'expressions régulières RE2 de Go, qui présente certaines limitations par rapport à des moteurs tels que PCRE. Lorsque vous écrivez des expressions régulières, respectez les limites décrites dans Annexe : Limites des expressions régulières (filtrage des conteneurs) .
Liste noire/liste blanche des variables d'environnement : Spécifiez les conditions de variable d'environnement pour les conteneurs dont vous souhaitez collecter les journaux.
Liste noire/liste blanche des étiquettes de pod K8s : Spécifiez les conditions d'étiquette pour les pods où se trouvent les conteneurs à collecter.
Correspondance d'expression régulière du nom de pod K8s : Spécifiez les conteneurs à collecter par nom de pod.
Correspondance d'expression régulière du namespace K8s : Spécifiez les conteneurs à collecter par nom de namespace.
Correspondance d'expression régulière du nom de conteneur K8s : Spécifiez les conteneurs à collecter par nom de conteneur.
Liste noire/liste blanche des étiquettes de conteneur : Collectez les journaux des conteneurs dont les étiquettes répondent aux conditions spécifiées. Ce paramètre est utilisé dans les scénarios Docker et n'est pas recommandé pour les scénarios Kubernetes.
4. Catégorisation des journaux
Lorsque plusieurs applications partagent le même format de journal, configurez des topics et des tags de journal pour distinguer les sources de journaux afin d'optimiser les requêtes.
Configurer un topic
Si plusieurs applications ou instances ont le même format de journal mais des chemins différents, tels que /apps/app-A/run.log et /apps/app-B/run.log, il est difficile de distinguer la source des journaux collectés. Vous pouvez générer un topic basé sur le groupe de machines, un nom personnalisé ou l'extraction du chemin de fichier pour distinguer de manière flexible les journaux provenant de différentes applications ou sources de chemin.
Étapes de configuration : : Sélectionnez la méthode de génération du topic. Les trois types suivants sont pris en charge :
Machine Group Topic : Si une configuration de collecte est appliquée à plusieurs groupes de machines, LoongCollector utilise automatiquement le nom du groupe de machines auquel appartient le serveur comme valeur du champ
__topic__pour le téléchargement. Cela convient aux scénarios où les journaux sont divisés par cluster d'hôtes.Custom : Le format est
customized://<custom_topic_name>, par exemple,customized://app-login. Cela convient aux scénarios de topic statique avec des identifiants métier fixes.-
File Path Extraction : Extrait les informations clés du chemin complet du fichier journal pour marquer dynamiquement la source du journal. Cela convient aux situations où plusieurs utilisateurs ou applications partagent le même nom de fichier journal mais ont des chemins différents.
Si plusieurs utilisateurs ou services écrivent des journaux dans des répertoires de premier niveau différents, mais que les sous-chemins et les noms de fichiers sont identiques, la source ne peut pas être distinguée par le seul nom de fichier. Par exemple :
/data/logs ├── userA │ └── serviceA │ └── service.log ├── userB │ └── serviceA │ └── service.log └── userC └── serviceA └── service.logConfigurez File Path Extraction et utilisez une expression régulière pour extraire les informations clés du chemin complet. Le résultat correspondant est téléchargé dans le Logstore en tant que topic.
Règle d'extraction : Basée sur les groupes de capture d'expressions régulières
Lorsque vous configurez une expression régulière, le système détermine automatiquement le format du champ de sortie en fonction du nombre et du nom des groupes de capture. Les règles sont les suivantes :
Dans l'expression régulière du chemin de fichier, vous devez échapper la barre oblique (/).
Type de groupe de capture
Scénario
Champ généré
Exemple d'expression régulière
Exemple de chemin correspondant
Champ généré
Groupe de capture unique (un seul
(.*?))Une seule dimension est nécessaire pour distinguer la source (comme le nom d'utilisateur, l'environnement)
Génère le champ
__topic__\/logs\/(.*?)\/app\.log/logs/userA/app.log__topic__:userAPlusieurs groupes de capture - non nommés (plusieurs
(.*?))Plusieurs dimensions sont nécessaires mais aucune étiquette sémantique
Génère un champ de tag
__tag__:__topic_{i}__, où{i}est le numéro d'ordre du groupe de capture\/logs\/(.*?)\/(.*?)\/app\.log/logs/userA/svcA/app.log__tag__:__topic_1__userA;__tag__:__topic_2__svcAPlusieurs groupes de capture - nommés (utilisation de
(?P<name>.*?)Plusieurs dimensions sont nécessaires et vous souhaitez que la signification des champs soit claire pour faciliter la requête et l'analyse
Génère un champ de tag
__tag__:{name}\/logs\/(?P<user>.*?)\/(?P<service>.*?)\/app\.log/logs/userA/svcA/app.log__tag__:user:userA;__tag__:service:svcA
Tagging des journaux
Activez la fonctionnalité d'enrichissement des tags de journaux pour extraire les informations clés des variables d'environnement des conteneurs ou des étiquettes de pod Kubernetes et les attacher en tant que tags. Cela permet un regroupement fin des journaux.
Étapes de configuration : Dans la section Input Configurations de la page Logtail Configuration, activez Log Tag Enrichment et cliquez sur Add.
-
Environment Variables : Configurez le nom de la variable d'environnement et le nom du tag. La valeur de la variable d'environnement est stockée dans le nom du tag.
Nom de la variable d'environnement : Spécifiez le nom de la variable d'environnement à extraire.
Nom du tag : Le nom du tag de la variable d'environnement.
-
Pod Labels : Configurez le nom de l'étiquette de pod et le nom du tag. La valeur de l'étiquette de pod est stockée dans le nom du tag.
Nom de l'étiquette de pod : Le nom de l'étiquette de pod Kubernetes à extraire.
Nom du tag : Le nom du tag.
5. Configuration de la sortie
Par défaut, tous les journaux sont envoyés vers le Logstore actuel, et la méthode de compression est lz4. Pour distribuer les journaux provenant de la même source vers différents Logstores, vous pouvez configurer les paramètres suivants :
Distribution dynamique multi-cibles
La livraison multi-destinations est disponible uniquement pour LoongCollector 3.0.0 et versions ultérieures. Logtail ne prend pas en charge cette fonctionnalité.
Vous pouvez configurer jusqu'à cinq destinations de sortie.
Après avoir configuré plusieurs destinations de sortie, cette configuration de collecte n'est plus affichée dans la liste des configurations de collecte du Logstore actuel. Pour afficher, modifier ou supprimer une configuration de livraison multi-destinations, consultez Comment gérer les configurations de livraison multi-destinations ?.
Procédure : Dans la zone Output Configurations de la page Logtail Configuration.
Cliquez sur
pour développer la configuration de sortie.-
Cliquez sur Add Output Targets et effectuez les configurations suivantes :
Logstores : Sélectionnez le Logstore de destination.
Compression Method : Prend en charge lz4 et zstd.
-
Route Settings : Acheminez et distribuez les journaux en fonction de leurs champs de tag. Les journaux correspondant à la configuration de routage sont téléchargés vers le Logstore de destination. Si la configuration de routage est vide, tous les journaux collectés sont téléchargés vers le Logstore de destination.
-
Tag Name : Le nom du champ de tag utilisé pour le routage. Saisissez directement le nom du champ, tel que
__path__, sans le préfixe__tag__:. Les champs de tag sont divisés en deux catégories suivantes :Pour plus d'informations sur les tags, consultez Gérer les tags de collecte LoongCollector .
Liés à l'agent : Ces tags sont liés à l'agent de collecte lui-même et ne dépendent pas des plug-ins. Exemples :
__hostname__et__user_defined_id__.Liés au plug-in d'entrée : Ces tags dépendent des plug-ins d'entrée, qui fournissent et enrichissent les journaux avec des informations pertinentes. Exemples :
__path__pour la collecte de fichiers, et_pod_name_et_container_name_pour la collecte Kubernetes.
Tag Value : Lorsque la valeur du champ de tag d'un journal correspond à cette valeur, le journal est envoyé vers ce Logstore de destination.
Discard this tag? : Si vous activez cette option, le journal téléchargé ne contient pas ce champ de tag.
-
Étape 3 : Configurer la requête et l'analyse
Une fois la configuration du traitement des journaux et des plug-ins terminée, cliquez sur Next pour accéder à la page Query and Analysis Configurations :
Le système active l'Index full-text par défaut, qui prend en charge les recherches par mots-clés sur le contenu brut du journal.
Pour effectuer des requêtes précises par champ, cliquez sur Automatic Index Generation après le chargement des données Preview Data sur la page. SLS génère un index de champ basé sur la première entrée des données d'aperçu.
Une fois la configuration terminée, cliquez sur Next pour finaliser la configuration de l'ensemble du processus de collecte.
Étape 4 : Valider et dépanner
Une fois la configuration de collecte terminée et appliquée au groupe de machines, le système distribue automatiquement la configuration et commence à collecter les journaux incrémentiels.
Afficher les journaux téléchargés
Confirmez qu'il y a du nouveau contenu dans le fichier journal : LoongCollector collecte uniquement les journaux incrémentiels. Exécutez
tail -f /path/to/your/log/fileet déclenchez une opération métier pour vous assurer que de nouveaux journaux sont écrits.-
Interrogez les journaux : Accédez à la page de requête et d'analyse du Logstore cible, cliquez sur Search & Analyze (la plage de temps par défaut est les 15 dernières minutes) et vérifiez si de nouveaux journaux arrivent. Chaque journal texte de conteneur Docker collecté contient les champs suivants par défaut :
Nom du champ
Description
__source__
L'adresse IP du conteneur LoongCollector (Logtail).
_container_ip_
L'adresse IP du conteneur d'application.
__tag__:__hostname__
Le nom de l'hôte Docker où se trouve LoongCollector (Logtail).
__tag__:__path__
Le chemin de collecte des journaux.
__tag__:__receive_time__
L'heure d'arrivée du journal sur le serveur.
__tag__:__user_defined_id__
L'ID personnalisé du groupe de machines.
FAQ
La connexion heartbeat du groupe de machines est FAIL
-
Vérifiez l'ID utilisateur : Si votre type de serveur n'est pas ECS, ou si l'instance ECS et le projet appartiennent à différents comptes Alibaba Cloud, vérifiez si l'ID utilisateur correct existe dans le répertoire spécifié en vous basant sur le tableau suivant.
Linux : Exécutez la commande
cd /etc/ilogtail/users/ && touch <uid>pour créer un fichier d'ID utilisateur.Windows : Accédez au répertoire
C:\LogtailData\users\et créez un fichier vide nommé<uid>.
Si un fichier nommé avec l'ID de compte Alibaba Cloud du projet actuel existe dans le chemin spécifié, l'ID utilisateur est correctement configuré.
-
Vérifiez l'ID du groupe de machines : Si vous utilisez un ID personnalisé pour le groupe de machines, vérifiez si un fichier
user_defined_idexiste dans le répertoire spécifié. S'il existe, vérifiez si le contenu du fichier est cohérent avec l'ID personnalisé configuré pour le groupe de machines.Système
Répertoire spécifié
Solution
Linux
/etc/ilogtail/user_defined_id# Configure the custom ID. If the directory does not exist, create it manually. echo "user-defined-1" > /etc/ilogtail/user_defined_idWindows
C:\LogtailData\user_defined_idCréez un nouveau fichier
user_defined_iddans le répertoireC:\LogtailDataet écrivez-y l'ID personnalisé. (Si le répertoire n'existe pas, créez-le manuellement.) Si l'ID utilisateur et l'ID du groupe de machines sont correctement configurés, consultez Dépannage des problèmes de groupe de machines LoongCollector (Logtail) pour un dépannage supplémentaire.
Aucune donnée collectée pour les journaux
Vérifiez la présence de journaux incrémentiels : Après avoir configuré LoongCollector (Logtail) pour la collecte, s'il n'y a pas de nouveaux journaux dans le fichier journal à collecter, LoongCollector (Logtail) ne collecte pas les journaux de ce fichier.
-
Vérifiez le statut heartbeat du groupe de machines : Accédez à la page , cliquez sur le nom du groupe de machines cible et, dans la section , vérifiez le statut Heartbeat.
Si le heartbeat est OK, le groupe de machines est connecté au projet SLS.
Si le heartbeat est FAIL : La connexion heartbeat du groupe de machines est FAIL.
-
Confirmez si la configuration de collecte LoongCollector (Logtail) a été appliquée au groupe de machines : Même si la configuration de collecte LoongCollector (Logtail) est créée, les journaux ne sont pas collectés si la configuration n'est pas appliquée au groupe de machines.
Accédez à la page et cliquez sur le nom du groupe de machines cible pour accéder à la page Machine Group Configurations.
Sur la page, affichez Manage Configuration. Le côté gauche affiche All Logtail Configurations, et le côté droit affiche Applied Logtail Configurations. Si la configuration de collecte LoongCollector (Logtail) cible a été déplacée vers la zone appliquée à droite, la configuration a été appliquée avec succès au groupe de machines cible.
Si la configuration de collecte LoongCollector (Logtail) cible n'a pas été déplacée vers la zone appliquée à droite, cliquez sur Modify. Dans la liste All Logtail Configurations à gauche, sélectionnez le nom de la configuration LoongCollector (Logtail) cible, cliquez sur
pour la déplacer vers la zone appliquée à droite, puis cliquez sur Save.
Erreur de collecte de journaux ou format incorrect
Approche de dépannage : Cette situation indique que la connexion réseau et la configuration de base sont normales. Le problème est principalement un décalage entre le contenu du journal et les règles d'analyse. Vous devez afficher le message d'erreur spécifique pour localiser le problème :
Sur la page Logtail Configuration, cliquez sur le nom de la configuration LoongCollector (Logtail) présentant l'erreur de collecte. Dans l'onglet Log Collection Error, cliquez sur Select Time Range pour définir la période de requête.
Dans la section , affichez la métrique d'alerte du journal d'erreur et trouvez la solution correspondante dans Types d'erreurs courants lors de la collecte de données.
Étapes suivantes
Visualisation des données : Utilisez des tableaux de bord de visualisation pour surveiller les tendances des métriques clés.
Alerte automatique pour les anomalies de données : Configurez des politiques d'alerte pour être informé des anomalies système en temps réel.
Commandes courantes
Afficher le statut d'exécution de LoongCollector (Logtail)
docker exec ${logtail_container_id} /etc/init.d/ilogtaild status
Afficher des informations telles que le numéro de version, l'adresse IP et l'heure de démarrage de LoongCollector (Logtail)
docker exec ${logtail_container_id} cat /usr/local/ilogtail/app_info.json
Afficher les journaux d'exécution de LoongCollector (Logtail)
Les journaux d'exécution de LoongCollector (Logtail) sont enregistrés dans le répertoire /usr/local/ilogtail/ à l'intérieur du conteneur. Le nom du fichier est ilogtail.LOG, et les fichiers rotationnés sont compressés et stockés sous la forme ilogtail.LOG.x.gz. Exemple :
# View LoongCollector running logs
docker exec a287de895e40 tail -n 5 /usr/local/ilogtail/loongcollector.LOG
# View Logtail running logs
docker exec a287de895e40 tail -n 5 /usr/local/ilogtail/ilogtail.LOG
Exemple de sortie :
[2025-08-25 09:17:44.610496] [info] [22] /build/loongcollector/file_server/polling/PollingModify.cpp:75 polling modify resume:succeeded
[2025-08-25 09:17:44.610497] [info] [22] /build/loongcollector/file_server/polling/PollingDirFile.cpp:100 polling discovery resume:starts
[2025-08-25 09:17:44.610498] [info] [22] /build/loongcollector/file_server/polling/PollingDirFile.cpp:103 polling discovery resume:succeeded
[2025-08-25 09:17:44.610499] [info] [22] /build/loongcollector/file_server/FileServer.cpp:117 file server resume:succeeded
[2025-08-25 09:17:44.610500] [info] [22] /build/loongcollector/file_server/EventDispatcher.cpp:1019 checkpoint dump:succeeded
Redémarrer LoongCollector (Logtail)
# Stop loongcollector
docker exec a287de895e40 /etc/init.d/ilogtaild stop
# Start loongcollector
docker exec a287de895e40 /etc/init.d/ilogtaild start
FAQ
Messages d'erreur courants
|
Phénomène d'erreur |
Cause |
Solution |
|
|
La région du projet est incohérente avec celle du conteneur LoongCollector (Logtail). |
Vérifiez la configuration de la région dans |
|
|
Configuration incorrecte du chemin de fichier. |
Confirmez que le chemin du journal dans le conteneur d'application correspond à la configuration de collecte. |
Journal d'erreur : The parameter is invalid : uuid=none
Description du problème : Le journal LoongCollector (Logtail) (/usr/local/ilogtail/ilogtail.LOG) contient le journal d'erreur The parameter is invalid : uuid=none.
Solution : Créez un fichier product_uuid sur l'hôte, saisissez un UUID valide quelconque, tel que 169E98C9-ABC0-4A92-B1D2-AA6239C0D261, et montez ce fichier dans le répertoire /sys/class/dmi/id/product_uuid du conteneur LoongCollector (Logtail).
Comment le même fichier journal ou la sortie standard du conteneur peut-il être collecté simultanément par plusieurs configurations de collecte ?**
Par défaut, pour éviter la duplication des données, SLS restreint chaque source de journal à être collectée par une seule configuration de collecte :
Un fichier journal texte ne peut correspondre qu'à une seule configuration Logtail.
-
Sortie standard du conteneur (stdout) :
Si vous utilisez la nouvelle version du modèle de sortie standard, elle ne peut être collectée que par une seule configuration de collecte de sortie standard par défaut.
Si vous utilisez l'ancienne version du modèle de sortie standard, aucune configuration supplémentaire n'est nécessaire et elle prend en charge la collecte de plusieurs copies par défaut.
Connectez-vous à la console Simple Log Service et accédez au projet cible.
Dans le volet de navigation de gauche, choisissez
Logstores et recherchez le Logstore cible.Cliquez sur l'icône
à côté de son nom pour développer le Logstore.Cliquez sur Logtail Configuration. Dans la liste des configurations, recherchez la configuration Logtail cible et cliquez sur Manage Logtail Configuration dans la colonne Actions.
-
Sur la page de configuration Logtail, cliquez sur Edit et faites défiler vers le bas jusqu'à la section Input Configurations :
Pour collecter les journaux de fichiers texte : Activez Allow File to Be Collected for Multiple Times.
Pour collecter la sortie standard du conteneur : Activez Allow Collection by Different Logtail Configurations.
Annexe : Présentation détaillée des plugins d'analyse natifs
Dans la section Processing Configuration de la page Logtail Configuration, ajoutez des plugins de traitement pour configurer l'analyse structurée des journaux bruts. Pour ajouter un plugin de traitement à une configuration de collecte existante, procédez comme suit :
Dans le volet de navigation de gauche, sélectionnez
Logstores et identifiez le logstore cible.Cliquez sur l'icône
située à côté du nom du logstore pour le développer.Sélectionnez Logtail Configuration. Dans la liste des configurations, repérez la configuration Logtail cible et cliquez sur Manage Logtail Configuration dans la colonne Actions.
Sur la page de configuration Logtail, cliquez sur Edit.
Cette section présente les plugins de traitement couramment utilisés. D'autres plugins sont disponibles dans la rubrique Plugins de traitement étendus .
Règles de combinaison des plugins (applicables aux versions LoongCollector / Logtail 2.0 et ultérieures) :
Les plugins de traitement natifs et les plugins de traitement étendus peuvent être utilisés indépendamment ou combinés selon vos besoins.
Privilégiez les plugins de traitement natifs pour bénéficier de meilleures performances et d'une stabilité accrue.
Si les fonctionnalités natives ne répondent pas à vos exigences, ajoutez des plugins de traitement étendus après les plugins natifs pour un traitement complémentaire.
Contrainte d'ordre :
Tous les plugins sont exécutés séquentiellement dans l'ordre de leur configuration, formant ainsi une chaîne de traitement. Notez que tous les plugins de traitement natifs doivent précéder tout plugin de traitement étendu. Une fois qu'un plugin de traitement étendu a été ajouté, vous ne pouvez plus ajouter de plugins de traitement natifs.
Analyse par expression régulière
Extrayez les champs de journal à l'aide d'expressions régulières et analysez les journaux sous forme de paires clé-valeur. Chaque champ peut faire l'objet de requêtes et d'analyses indépendantes.
Résultat attendu :
|
Journal brut sans traitement |
Analyse à l'aide du plugin d'expression régulière |
|
|
Étapes de configuration : Dans la section Processor Configurations de la page Logtail Configuration, cliquez sur Add Processor et sélectionnez :
-
Regular Expression : Utilisée pour faire correspondre le journal. La génération automatique ou la saisie manuelle est prise en charge :
-
Génération automatique :
Cliquez sur Generate.
Dans le champ Log Sample, mettez en surbrillance le contenu du journal à extraire.
-
Cliquez sur Generate Regular Expression.

Saisie manuelle : Cliquez sur Manually Enter Regular Expression en fonction du format du journal.
Une fois la configuration terminée, cliquez sur Validate pour vérifier si l'expression régulière analyse correctement le contenu du journal.
-
Extracted Field : Définissez le nom de champ (clé) correspondant au contenu du journal extrait (valeur).
Pour plus d'informations sur les autres paramètres, consultez les descriptions des paramètres de configuration communs dans la rubrique Scénario 2 : Journalisation structurée.
Analyse par séparateur
Structurez le contenu du journal à l'aide d'un séparateur et analysez-le en plusieurs paires clé-valeur. Les séparateurs à caractère unique et à caractères multiples sont pris en charge.
Résultat attendu :
|
Journal brut sans traitement |
Découpage des champs selon le caractère spécifié |
|
|
Étapes de configuration : Dans la section Processor Configurations de la page Logtail Configuration, cliquez sur Add Processor et sélectionnez .
-
Delimiter : Spécifiez le caractère utilisé pour découper le contenu du journal.
Exemple : Pour un fichier au format CSV, sélectionnez Custom et saisissez une virgule (,).
Quote : Si la valeur d'un champ contient le séparateur, vous devez spécifier un guillemet pour encapsuler le champ afin d'éviter un découpage incorrect.
-
Extracted Field : Définissez le nom de champ (clé) correspondant pour chaque colonne, dans l'ordre de séparation. Les règles sont les suivantes :
Les noms de champ ne peuvent contenir que des lettres, des chiffres et des traits de soulignement (_).
Ils doivent commencer par une lettre ou un trait de soulignement (_).
La longueur maximale est de 128 octets.
Pour plus d'informations sur les autres paramètres, consultez les descriptions des paramètres de configuration communs dans la rubrique Scénario 2 : Journalisation structurée.
Analyse JSON standard
Structurez un journal JSON de type objet en l'analysant sous forme de paires clé-valeur.
Résultat attendu :
|
Journal brut sans traitement |
Extraction automatique des paires clé-valeur JSON standard |
|
|
Étapes de configuration : Dans la section Processor Configurations de la page Logtail Configuration, cliquez sur Add Processor et sélectionnez .
Original Field : La valeur par défaut est content. Ce champ sert à stocker le contenu brut du journal à analyser.
Pour plus d'informations sur les autres paramètres, consultez les descriptions des paramètres de configuration communs dans la rubrique Scénario 2 : Journalisation structurée.
Analyse JSON imbriqué
Analysez un journal JSON imbriqué en paires clé-valeur en spécifiant la profondeur d'expansion.
Résultat attendu :
|
Journal brut sans traitement |
Profondeur d'expansion : 0, utilisation de la profondeur d'expansion comme préfixe |
Profondeur d'expansion : 1, utilisation de la profondeur d'expansion comme préfixe |
|
|
|
Étapes de configuration : Dans la section Processor Configurations de la page Logtail Configuration, cliquez sur Add Processor et sélectionnez :
Original Field : Nom du champ brut à développer, par exemple
content.JSON Expansion Depth : Niveau d'expansion de l'objet JSON. La valeur 0 indique une expansion complète (valeur par défaut). La valeur 1 indique le niveau actuel.
Character to Concatenate Expanded Keys : Connecteur utilisé pour les noms de champ lors de l'expansion JSON. Le connecteur par défaut est le trait de soulignement (_).
Name Prefix of Expanded Keys : Spécifiez le préfixe des noms de champ après l'expansion JSON.
-
Expand Array : Activez cette option pour développer le tableau en paires clé-valeur avec des index.
Exemple :
{"k":["a","b"]}est développé en{"k[0]":"a","k[1]":"b"}.Pour renommer les champs développés, par exemple pour passer de prefix_s_key_k1 à new_field_name, ajoutez un plugin Rename Field afin d'effectuer le mappage.
Pour plus d'informations sur les autres paramètres, consultez les descriptions des paramètres de configuration communs dans la rubrique Scénario 2 : Journalisation structurée.
Analyse de tableau JSON
Utilisez la fonction json_extract pour extraire des objets JSON d'un tableau JSON.
Résultat attendu :
|
Journal brut sans traitement |
Extraction de la structure du tableau JSON |
|
|
Étapes de configuration : Dans la section Processor Configurations de la page Logtail Configuration, basculez la Processing Method sur SPL, configurez l'instruction SPL et utilisez la fonction json_extract pour extraire des objets JSON du tableau JSON.
Exemple : Extrayez les éléments du tableau JSON figurant dans le champ de journal content et stockez les résultats dans les nouveaux champs json1 et json2.
* | extend json1 = json_extract(content, '$[0]'), json2 = json_extract(content, '$[1]')
Analyse des journaux Apache
Structurez le contenu du journal en vous basant sur les définitions du fichier de configuration des journaux Apache et analysez-le en plusieurs paires clé-valeur.
Résultat attendu :
|
Journal brut sans traitement |
Analyse du format de journal Apache Common |
|
|
Étapes de configuration : Dans la section Processor Configurations de la page Logtail Configuration, cliquez sur Add Processor et sélectionnez :
Log Format : combined
-
APACHE LogFormat Configuration : Le système renseigne automatiquement la configuration en fonction du Log Format.
ImportantVérifiez le contenu renseigné automatiquement pour vous assurer qu'il est strictement identique au LogFormat défini dans le fichier de configuration Apache du serveur. Ce fichier se trouve généralement à l'emplacement /etc/apache2/apache2.conf.
Pour plus d'informations sur les autres paramètres, consultez les descriptions des paramètres de configuration communs dans la rubrique Scénario 2 : Journalisation structurée.
Masquage des données
Masquez les données sensibles présentes dans les journaux.
Résultat attendu :
|
Journal brut sans traitement |
Résultat du masquage |
|
|
Étapes de configuration : Dans la section Processor Configurations de la page Logtail Configuration, cliquez sur Add Processor et sélectionnez .
Original Field : Champ brut contenant le contenu du journal avant analyse.
-
Data Masking Method :
const : Remplace le contenu sensible par la chaîne modifiée.
md5 : Remplace le contenu sensible par son hachage MD5 correspondant.
Replacement String : Si vous définissez la Masking Method sur const, vous devez saisir une chaîne pour remplacer le contenu sensible.
Content Expression that Precedes Replaced Content : Utilisé pour localiser le contenu sensible. Configurez ce paramètre à l'aide de la syntaxe RE2.
Content Expression to Match Replaced Content : Expression correspondant au contenu sensible. Configurez ce paramètre à l'aide de la syntaxe RE2.
Analyse temporelle
Analysez le champ horaire du journal et définissez le résultat de l'analyse comme valeur du champ __time__ du journal.
Résultat attendu :
|
Journal brut sans traitement |
Analyse temporelle |
|
|
Étapes de configuration : Dans la section Processor Configurations de la page Logtail Configuration, cliquez sur Add Processor et sélectionnez :
Original Field : Champ brut contenant le contenu du journal avant analyse.
Time Format : Définissez le format horaire correspondant en fonction du contenu temporel du journal.
Time Zone : Sélectionnez le fuseau horaire du champ temporel du journal. Par défaut, le fuseau horaire de la machine est utilisé, c'est-à-dire celui de l'environnement où s'exécute le processus LoongCollector (Logtail).
Annexe : Limites des expressions régulières (filtrage de conteneur)
Les expressions régulières utilisées pour le Container Filtering reposent sur le moteur RE2 de Go, qui présente certaines limitations syntaxiques par rapport à d'autres moteurs tels que PCRE. Tenez compte des points suivants lors de la rédaction d'expressions régulières :
1. Différences dans la syntaxe des groupes nommés
Go utilise la syntaxe (?P<name>...) pour définir des groupes nommés et ne prend pas en charge la syntaxe (?<name>...) de PCRE.
Exemple correct :
(?P<year>\d{4})Syntaxe incorrecte :
(?<year>\d{4})
2. Fonctionnalités regex non prises en charge
Les fonctionnalités regex courantes mais complexes suivantes ne sont pas disponibles dans RE2. Évitez de les utiliser :
Assertion :
(?=...),(?!...),(?<=...),(?<!...)Expression conditionnelle :
(?(condition)true|false)Correspondance récursive :
(?R),(?0)Référence de sous-programme :
(?&name),(?P>name)Groupe atomique :
(?>...)
3. Recommandations d'utilisation
Nous vous recommandons d'utiliser des outils tels que Regex101 pour déboguer les expressions régulières. Sélectionnez le mode Golang (RE2) pour la validation afin de garantir la compatibilité. Si vous utilisez l'une des syntaxes non prises en charge mentionnées ci-dessus, le plugin n'effectuera pas l'analyse ou la correspondance correctement.
Annexe : Comparaison des anciennes et nouvelles versions de la sortie standard des conteneurs
Le format des métadonnées de journal pour la sortie standard des conteneurs a été mis à niveau. Le nouveau format consolide les métadonnées dans le champ __tag__ pour optimiser le stockage et normaliser le format.
-
Principaux avantages de la nouvelle version de la sortie standard
-
Amélioration significative des performances
Refonte en C++ : les performances sont améliorées de 180 % à 300 % par rapport à l'ancienne implémentation Go.
Prise en charge des plugins natifs pour le traitement des données et le traitement parallèle multithread, exploitant pleinement les ressources système.
Combinaison flexible des plugins natifs et Go pour répondre aux exigences des scénarios complexes.
-
Fiabilité accrue
Prise en charge d'une file d'attente de rotation des journaux de sortie standard. Le mécanisme de collecte des journaux est unifié avec le mécanisme de collecte de fichiers, offrant une grande fiabilité dans les scénarios où la rotation des journaux de sortie standard est rapide.
-
Consommation réduite des ressources
L'utilisation du CPU est réduite de 20 % à 25 %.
L'utilisation de la mémoire est réduite de 20 % à 25 %.
-
Cohérence opérationnelle et maintenance améliorées
Configuration unifiée des paramètres : les paramètres de configuration du nouveau plugin de collecte de sortie standard sont cohérents avec ceux du plugin de collecte de fichiers.
Gestion unifiée des métadonnées : la dénomination des champs de métadonnées des conteneurs et l'emplacement de stockage des journaux de tags sont unifiés avec le scénario de collecte de fichiers. Le côté consommateur n'a besoin de maintenir qu'un seul ensemble de logique de traitement.
-
-
Comparaison des fonctionnalités des nouvelles et anciennes versions
Dimension fonctionnelle
Fonctionnalités de l'ancienne version
Fonctionnalités de la nouvelle version
Méthode de stockage
Les métadonnées sont directement intégrées dans le contenu du journal en tant que champ normal.
Les métadonnées sont centralisées dans le tag
__tag__.Efficacité de stockage
Chaque journal transporte l'intégralité des métadonnées de manière répétée, ce qui consomme davantage d'espace de stockage.
Plusieurs journaux dans le même contexte peuvent réutiliser les métadonnées, ce qui permet de réduire les coûts de stockage.
Cohérence du format
Incohérent avec le format de collecte de fichiers de conteneur.
La dénomination des champs et la structure de stockage sont entièrement alignées sur la collecte de fichiers de conteneur, offrant une expérience unifiée.
Méthode d'accès aux requêtes
Possibilité d'interroger directement par nom de champ, par exemple
_container_name_.Nécessite l'accès à la paire clé-valeur correspondante via
__tag__, par exemple__tag__: _container_name_. -
Tableau de mappage des champs de métadonnées des conteneurs
Nom du champ de l'ancienne version
Nom du champ de la nouvelle version
_container_ip_
__tag__:_container_ip_
_container_name_
__tag__:_container_name_
_image_name_
__tag__:_image_name_
_namespace_
__tag__:_namespace_
_pod_name_
__tag__:_pod_name_
_pod_uid_
__tag__:_pod_uid_
Dans la nouvelle version, tous les champs de métadonnées sont stockés dans la zone de tag du journal au format
__tag__:<key>, plutôt que d'être intégrés dans le contenu du journal. -
Impact des changements de la nouvelle version sur les utilisateurs
Adaptation côté consommateur : Étant donné que l'emplacement de stockage est passé du « contenu » au « tag », la logique de consommation des journaux doit être ajustée en conséquence. Par exemple, vous devez accéder aux champs via __tag__ lors des requêtes.
Compatibilité SQL : Le SQL de requête a été automatiquement adapté pour assurer la compatibilité ; les utilisateurs n'ont donc pas besoin de modifier leurs instructions de requête pour traiter simultanément les journaux des nouvelles et anciennes versions.
> Create Machine Group





