Tous les produits
Search
Centre de documentation

Simple Log Service:Collecte groupée de journaux texte serveur

Dernière mise à jour :Sep 22, 2026

La collecte incrémentielle traditionnelle des journaux ne permet pas de récupérer les fichiers statiques existants en une seule exécution. La collecte ponctuelle vous permet de déployer des configurations de collecte en masse vers un groupe de machines via la console ou l'API, de collecter le contenu des fichiers statiques spécifiés une seule fois et d'arrêter automatiquement la tâche une fois terminée.

Applicabilité

  • LoongCollector version 3.3 ou ultérieure.

  • LoongCollector prend en charge la collecte sur hôte sous Linux et Windows, mais pas la collecte dans des conteneurs.

Configuration de la collecte

  1. Preparation: Créez un projet et un Logstore. Un projet isole les journaux provenant de différents services. Un Logstore stocke les journaux.

  2. Configurer un groupe de machines (installer LoongCollector): Installez LoongCollector en fonction du type de votre serveur et ajoutez-le à un groupe de machines. Utilisez le groupe de machines pour gérer les nœuds de collecte, distribuer les configurations et surveiller l'état des serveurs.

  3. Créer et configurer une règle de collecte de fichiers ponctuelle:

    1. Global and input configuration : Nommez la configuration de collecte et spécifiez la source et la portée des journaux.

    2. Log processing and structuring: Configurez les paramètres de traitement en fonction du format de vos journaux.

      • Journaux multilignes : Gère les entrées de journal qui s'étendent sur plusieurs lignes, telles que les traces de pile Java ou les traces d'erreur Python. Utilisez une expression régulière de début de ligne pour identifier le début de chaque entrée de journal, en fusionnant les lignes suivantes en un seul enregistrement.

      • Analyse structurée : Configurez un plug-in d'analyse (tel que le mode regex, délimiteur ou NGINX) pour analyser les chaînes brutes en paires clé-valeur structurées. Cela vous permet d'interroger et d'analyser chaque champ indépendamment.

    3. Log filtering: Configurez les listes de blocage de collecte et les règles de filtrage de contenu pour sélectionner uniquement les journaux pertinents, ce qui réduit la transmission et le stockage de données redondantes.

    4. Log categorization: Configurez les rubriques de journal pour catégoriser de manière flexible les journaux provenant de différents services, serveurs ou chemins source.

  4. Query and analysis configuration: L'index en texte intégral est activé par défaut et prend en charge les recherches par mot-clé. Pour les champs structurés, activez un index de champ afin d'améliorer l'efficacité de la recherche et de prendre en charge les requêtes et analyses précises.

  5. Verify collection results: Une fois la configuration terminée, vérifiez que les journaux sont bien collectés. Si vous rencontrez des problèmes tels que des journaux non collectés, des échecs de heartbeat ou des erreurs d'analyse, consultez la section FAQ.

Prérequis

Créez un projet et un LogStore pour gérer et stocker vos journaux avant de les collecter. Si vous disposez déjà de ces ressources, ignorez cette étape et passez à la section Configurer un groupe de machines (installer LoongCollector).

Créer un projet

  1. Connectez-vous à la console Simple Log Service.

  2. Cliquez sur Create Project et configurez les paramètres suivants :

    • Region : Sélectionnez la région où se trouvent vos sources de journaux. Vous ne pouvez pas modifier ce paramètre après la création du projet.

    • Project Name : Saisissez un nom globalement unique pour le projet au sein d'Alibaba Cloud. Le nom ne peut pas être modifié après la création.

    • Laissez les autres paramètres avec leurs valeurs par défaut et cliquez sur Create. Pour plus d'informations, consultez la rubrique Créer un projet.

Créer un LogStore

  1. Dans la liste des projets, cliquez sur le projet cible.

  2. Dans le volet de navigation de gauche, accédez à imageLog Storage et cliquez sur +.

  3. Sur la page Create LogStore, configurez les paramètres principaux suivants :

    • Logstore Name : Saisissez un nom unique au sein du projet. Ce nom ne peut pas être modifié après la création.

    • Logstore Type : Sélectionnez Standard ou Query en fonction d'une comparaison des fonctionnalités.

    • Billing Mode :

      • Pay-by-feature : Ce mode vous facture séparément pour chaque ressource, telle que le stockage, l'indexation et les opérations de lecture/écriture. Il est idéal pour les scénarios à petite échelle ou pour les charges de travail dont l'utilisation des fonctionnalités est imprévisible.

      • Pay-by-ingested-data : Ce mode vous facture uniquement le volume de données brutes ingérées. Il comprend 30 jours de stockage gratuit et des fonctionnalités gratuites telles que le traitement des données et l'expédition. Il est idéal pour les charges de travail dont la période de rétention des données est proche de 30 jours ou qui disposent de pipelines de traitement de données complexes.

    • Data Retention Period : Spécifiez le nombre de jours de conservation des journaux, de 1 à 3 650. Une valeur de 3 650 signifie une conservation permanente. La valeur par défaut est de 30 jours.

    • Laissez les autres paramètres avec leurs valeurs par défaut et cliquez sur OK. Pour plus d'informations, consultez la rubrique Gérer un LogStore.

Étape 1 : Configurer un groupe de machines

Installez LoongCollector sur vos serveurs et ajoutez-les à un groupe de machines.

Remarque

Ces étapes d'installation s'appliquent uniquement si la source des journaux est une instance ECS située dans le même compte Alibaba Cloud et la même région que le projet Simple Log Service.

Si votre instance ECS et votre projet ne se trouvent pas dans le même compte ou la même région, ou si votre source de journaux est un serveur sur site, consultez la rubrique Installer et configurer LoongCollector.

Procédure :

  1. Sur la page Logstores image, cliquez sur image à côté du nom du logstore cible pour le développer.

  2. Cliquez sur Data Collection > Logtail Configurations. Dans l'onglet One-time Logtail Configuration, cliquez sur Add Logtail Configuration.

  3. Dans la boîte de dialogue Quick Data Import, cliquez sur Integrate Now sur la carte One-Time File Collection - Host.

  4. Sur la page Machine Group Configurations, configurez les paramètres suivants :

    • Scenario : Servers

    • Installation Environment : ECS

    • Select Machine Group : Sélectionnez une action en fonction de l'état de LoongCollector et du groupe de machines sur le serveur cible :

      • Si LoongCollector est installé et a été ajouté à un groupe de machines, sélectionnez-le dans la liste Source Machine Group et ajoutez-le à la liste Applied Machine Group. Vous n'avez pas besoin d'en créer un nouveau.

      • Si LoongCollector n'est pas installé, cliquez sur Create Machine Group :

        Les étapes suivantes décrivent le processus en un clic pour installer LoongCollector et créer un groupe de machines.
        1. Le système répertorie automatiquement les instances ECS situées dans la même région que le projet. Sélectionnez une ou plusieurs instances à partir desquelles vous souhaitez collecter des journaux.

        2. Cliquez sur Install and Create Machine Group. Le système installe automatiquement LoongCollector sur les instances ECS sélectionnées.

        3. Saisissez un Name pour le groupe de machines et cliquez sur OK.

        Remarque

        Si l'installation échoue ou reste en attente, vérifiez que l'instance ECS se trouve dans la même région que le projet.

      • Pour ajouter un serveur avec LoongCollector déjà installé à un groupe de machines existant, consultez la rubrique Comment ajouter un serveur à un groupe de machines existant ?

  5. Vérifier l'état du heartbeat : Cliquez sur Next. Lorsque la section Heartbeat Status of Machine Group apparaît, vérifiez le Heartbeat. Si l'état est OK, le groupe de machines est correctement connecté. Cliquez sur Next pour accéder à la page de configuration Logtail.

    Si l'état est FAIL, l'établissement du heartbeat initial peut prendre un certain temps. Attendez environ deux minutes, puis actualisez l'état du heartbeat. Si l'état est toujours FAIL après l'actualisation, consultez la section Échec de la connexion heartbeat du groupe de machines pour poursuivre le dépannage.

Étape 2 : Configurer une règle de collecte de fichiers ponctuelle

Après avoir installé LoongCollector et configuré le groupe de machines, accédez à la page Logtail Configurations pour définir les règles de collecte et de traitement des journaux.

1. Configurations globales et configurations d'entrée

Définissez le nom de la configuration de collecte et spécifiez la source et la portée de la collecte des journaux.

Global Configurations :

  • Configuration Name : Spécifiez 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. Les règles de nommage sont les suivantes :

    • Ne peut contenir que des lettres minuscules, des chiffres, des traits d'union (-) et des traits de soulignement (_).

    • Doit commencer et se terminer par une lettre minuscule ou un chiffre.

  • Execution Timeout : La valeur par défaut est de 600 s (10 minutes) et le délai d'expiration peut être défini entre 600 et 604 800 secondes (10 minutes à 7 jours). Si une tâche de collecte dépasse ce délai d'expiration, elle est arrêtée de force et les données restantes ne sont pas collectées.

    Important

    Remarque sur les mises à jour de configuration : Lorsque vous mettez à jour une configuration, sa période de validité est réinitialisée. Pour éviter une double exécution des tâches ou un rapport de données inattendu, assurez-vous que la portée du groupe de machines est correcte et que le temps d'exécution de la tâche précédente n'a pas dépassé le Execution Timeout.

  • Force rerun on update : Désactivé par défaut.

    • Désactivé :

      • Lorsque vous mettez à jour les paramètres de configuration de collecte autres que Execution Timeout ou Input Configurations, le système reprend la progression actuelle de la collecte au lieu de redémarrer la tâche. Cela garantit une collecte ininterrompue.

      • Si vous modifiez le Execution Timeout ou les Input Configurations, le système réexécute la tâche de collecte.

    • Activé : Lorsque vous mettez à jour la configuration de collecte, la tâche redémarre de force. Cela garantit que toutes les données sont traitées et rapportées selon les derniers paramètres. Remarque : Les données collectées avant la mise à jour ne sont pas supprimées. Pour effacer les données précédemment collectées, consultez la rubrique Suppression douce dans Simple Log Service.

Input Configurations :

  • Type : One-time File Collection (LoongCollector 3.3+ required).

  • File Path : Le chemin à partir duquel les journaux sont collectés.

    Remarque

    LoongCollector détermine la liste des fichiers à collecter et leur taille lorsqu'il récupère la configuration. Il ne collecte pas les nouveaux fichiers ni le contenu ajouté aux fichiers existants après ce point.

    • Linux : Le chemin doit commencer par une barre oblique (/). Par exemple, /data/mylogs/**/*.log collecte tous les fichiers avec l'extension .log dans tous les sous-répertoires de /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 ** dans le File Path peut correspondre. La valeur par défaut est 0, ce qui signifie que seul le répertoire actuel est surveillé.

2. Traitement et structuration des journaux

Configurez les règles de traitement des journaux pour convertir les journaux bruts non structurés en données structurées interrogeables. Commencez par Add Log Sample pour obtenir de meilleurs résultats.

Dans la zone Processor Configurations de la page Logtail Configurations, cliquez sur Add Sample Log et saisissez le contenu de votre journal. Le système utilise cet exemple pour identifier le format du journal et vous aide à générer une expression régulière et des règles d'analyse, ce qui simplifie le processus de configuration.

Scénario 1 : Traitement des journaux multilignes

Une entrée de journal, telle qu'une trace de pile d'exception Java ou un objet JSON, s'étend souvent sur plusieurs lignes. Par défaut, chaque ligne est traitée comme un enregistrement distinct, ce qui fragmente les entrées multilignes. Pour éviter cela, activez le mode multiligne et configurez une expression régulière de début de ligne pour fusionner les lignes consécutives en une seule entrée de journal.

Exemple :

Journal brut

Mode par défaut

Mode multiligne

[2025-11-13T10:52:20,557] [ERROR] java.sql.SQLException: No suitable driver found for jdbc:mysql://db.host:3306/prod_db
    at com.datastore.util.DataProcessor.save(DataProcessor.java:434)
    at io.awesomeapp.util.PaymentGateway.fetchData(PaymentGateway.java:463)
    at org.awesomeapp.util.UserService.processRequest(UserService.java:252)
    at io.datastore.service.DatabaseConnector.fetchData(DatabaseConnector.java:172)
    at org.datastore.service.UserService.fetchData(UserService.java:517)

Dans les résultats de la requête, chaque entrée de journal contient des métadonnées dupliquées telles que l'adresse IP 172.22.243.96, le nom d'hôte iZk1a6gxbmanfckj0ai8m8Z et le chemin du journal /var/log/java_app_si...n.log. Le champ content ne contient qu'une seule ligne de la trace de pile, telle que com.weblegacy.controller.DataProcessor.getUserById:81, ou une erreur de délai d'expiration comme java.util.concurrent.TimeoutException: Future task timed out after 30 seconds.

Dans la console Simple Log Service, un journal d'exception Java contenant l'erreur java.sql.SQLException: No suitable driver found for jdbc:mysql://db.host:3306/prod_db et une trace de pile de cinq lignes (de DataProcessor.save:434 à UserService.fetchData:517) est correctement identifié comme un seul enregistrement.

Procédure : Dans la zone Processor Configurations de la page Logtail Configurations, activez le Multi-line Mode :

  • Type : Sélectionnez Custom ou Multi-line JSON.

    • Custom : Utilisez cette option pour les journaux dont le format est incohérent. Vous devez configurer une Regex to Match First Line pour identifier le début de chaque entrée de journal.

      • Regex to Match First Line : Vous pouvez générer cette expression automatiquement ou la saisir manuellement. L'expression régulière doit correspondre à une ligne complète de données. Par exemple, l'expression pour le journal d'exemple est \[\d+-\d+-\w+:\d+:\d+,\d+]\s\[\w+]\s.*.

        • Pour générer automatiquement l'expression, cliquez sur Generate, sélectionnez le contenu du journal souhaité dans la zone de texte Log Sample, puis cliquez sur Generate Regular Expression.

        • Pour saisir manuellement l'expression, cliquez sur Manually Enter Regular Expression, fournissez votre expression, puis cliquez sur Validate.

    • Multi-line JSON : Si vos journaux bruts sont au format JSON standard, Simple Log Service gère automatiquement les sauts de ligne au sein d'une seule entrée de journal JSON.

  • Processing Method If Splitting Fails :

    • Discard : Si un bloc de texte ne correspond pas à la règle de début de ligne, il est ignoré.

    • Retain Single Line : Le texte qui ne correspond pas à la règle est plutôt traité en mode ligne unique, chaque ligne étant traitée comme un journal distinct.

Scénario 2 : Traitement des journaux structurés

L'interrogation et l'analyse de journaux non structurés ou semi-structurés, tels que les journaux d'accès NGINX ou la sortie d'application, peuvent être inefficaces. Simple Log Service fournit des plug-ins de traitement des données qui convertissent les journaux bruts en données structurées pour l'analyse, la surveillance et les alertes.

Exemple :

Journal brut

Journal structuré

192 168.*.* - - [15/Apr/2025:16:40:00 +0800] "GET /nginx-logo.png HTTP/1,1" 0 000 514 200 368 "-" "Mozilla/5,0 (Windows NT 10.0; Win64; x64) AppleWebKit/537,36 (KHTML, like Gecko) Chrome/131,0.*.* Safari/537,36"
body_bytes_sent: 368
http_referer: -
http_user_agent : Mozi11a/5,0 (Nindows NT 10.0; Win64; x64) AppleMebKit/537,36 (KHTML, like Gecko) Chrome/131,0.x.x Safari/537.36
remote_addr:192.168.*.*
remote_user: -
request_length: 514
request_method: GET
request_time: 0 000
request_uri: /nginx-logo.png
status: 200
time_local: 15/Apr/2025:16:40:00

Procédure : Dans la zone Processor Configurations de la page Logtail Configurations :

  1. Ajouter un plug-in de processeur : Cliquez sur Add Processor et configurez un plug-in tel que regex, délimiteur ou analyse JSON en fonction du format de votre journal. Cet exemple utilise un journal NGINX et sélectionne Native Processor > Data Parsing (NGINX Mode).

  2. NGINX Log Configuration : Copiez l'intégralité de la définition log_format depuis le fichier de configuration de votre 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"';
    Important

    La définition du format ici doit correspondre exactement au format utilisé pour générer le journal sur votre serveur. Sinon, l'analyse échouera.

  3. Paramètres courants : Les paramètres suivants sont communs à plusieurs plug-ins de processeur de données et ont la même fonction.

    • Original field : Spécifie le champ source à analyser. La valeur par défaut est content, qui correspond à l'ensemble de l'entrée de journal collectée.

    • Retain original field if parsing fails : Recommandé. Si le plug-in ne parvient pas à analyser un journal, par exemple en raison d'une incompatibilité de format, cette option conserve le contenu du journal d'origine dans le champ d'origine spécifié.

    • Retain original field if parsing succeeds : Cette option conserve le contenu du journal d'origine même après une analyse réussie.

3. Filtrage des journaux

La collecte de grands volumes de journaux à faible valeur ajoutée ou non pertinents, tels que les entrées DEBUG ou INFO, gaspille de l'espace de stockage, augmente les coûts, réduit l'efficacité des requêtes et présente des risques de fuite de données. Utilisez des règles de filtrage fines pour ne collecter que les journaux dont vous avez besoin.

Filtrage du contenu

Filtrez les journaux en fonction du contenu des champs, par exemple en ne collectant que les journaux dont le niveau level est WARNING ou ERROR.

Exemple :

Journaux bruts

Collecter uniquement les journaux WARNING ou ERROR

{"level":"WARNING","timestamp":"2025-09-23T19:11:40+0800","cluster":"yilu-cluster-0728","message":"Disk space is running low","freeSpace":"15%"}
{"level":"ERROR","timestamp":"2025-09-23T19:11:42+0800","cluster":"yilu-cluster-0728","message":"Failed to connect to database","errorCode":5003}
{"level":"INFO","timestamp":"2025-09-23T19:11:47+0800","cluster":"yilu-cluster-0728","message":"User logged in successfully","userId":"user-123"}
{"level":"WARNING","timestamp":"2025-09-23T19:11:40+0800","cluster":"yilu-cluster-0728","message":"Disk space is running low","freeSpace":"15%"}
{"level":"ERROR","timestamp":"2025-09-23T19:11:42+0800","cluster":"yilu-cluster-0728","message":"Failed to connect to database","errorCode":5003}

Procédure : Dans la zone Processor Configurations de la page Logtail Configurations :

Cliquez sur Add Processor et sélectionnez Native Processor > Data Filtering :

  • Field Name : champ de journal sur lequel appliquer le filtre.

  • Field Value : expression régulière utilisée pour le filtrage. Seule la correspondance texte intégral est prise en charge ; la correspondance partielle par mot-clé n'est pas disponible.

Liste noire de collecte

Utilisez une liste noire pour exclure des répertoires ou des fichiers spécifiques afin d'éviter le téléchargement de journaux non pertinents ou sensibles.

Procédure : Sur la page Logtail Configurations , accédez à la zone Input Configurations > Other Input Configurations , activez l'option Collection Blacklist , puis cliquez sur Add .

La correspondance exacte et la correspondance avec caractères génériques sont prises en charge pour les répertoires et les noms de fichiers. Les seuls caractères génériques pris en charge sont l'astérisque (*) et le point d'interrogation (?).
  • File Path Blacklist : chemins de fichiers à ignorer. Exemples :

    • /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 situés dans des répertoires commençant par private au sein du répertoire /home/admin/ .

  • File Blacklist : noms de fichiers à ignorer lors de la collecte. Exemple :

    • app_inner.log : ignore tous les fichiers nommés app_inner.log lors de la collecte.

  • Directory Blacklist : les chemins de répertoire ne doivent pas se terminer par une barre oblique (/). Exemples :

    • /home/admin/dir1/ : la liste noire de répertoires n'a aucun effet.

    • /home/admin/dir* : lors de la collecte, ignore les fichiers de tous les sous-répertoires de /home/admin/ dont les noms commencent par dir .

    • /home/admin/*/dir : ignore tous les fichiers de tout sous-répertoire de deuxième niveau nommé dir sous le répertoire /home/admin/ . Par exemple, les fichiers du répertoire /home/admin/a/dir sont ignorés, mais ceux du répertoire /home/admin/a/b/dir sont collectés.

4. Catégoriser les journaux

Lorsque les journaux de plusieurs applications ou instances partagent le même format mais ont des chemins différents, tels que /apps/app-A/run.log et /apps/app-B/run.log , il peut être difficile de distinguer leurs sources après la collecte. Configurez un topic de journal pour différencier les journaux provenant de diverses applications, services ou chemins, afin d'effectuer des requêtes précises dans une destination de stockage unifiée.

Procédure : Dans la zone Global Configurations > Other Global Configurations > Log Topic Type , sélectionnez une méthode de génération de topic. Les types suivants sont pris en charge :

  • Topic du groupe de machines : lorsque vous appliquez une configuration de collecte à plusieurs groupes de machines, LoongCollector utilise automatiquement le nom du groupe de machines du serveur comme valeur pour le champ __topic__ . Cette méthode est utile pour catégoriser les journaux par hôte.

  • Custom : utilisez le format customized://<custom-topic-name> , par exemple customized://app-login . Cette méthode convient aux topics statiques avec des identifiants métier fixes.

  • Extraction du chemin de fichier : extrait les informations clés du chemin complet d'un fichier journal pour étiqueter dynamiquement la source du journal. Cette approche est utile lorsque plusieurs utilisateurs ou applications partagent le même nom de fichier journal mais résident dans des chemins différents. Par exemple, lorsque plusieurs utilisateurs ou services écrivent des journaux dans des répertoires de premier niveau différents mais utilisent le même chemin de sous-répertoire et le même nom de fichier, vous ne pouvez pas distinguer la source par le seul nom de fichier :

    /data/logs
    ├── userA
    │   └── serviceA
    │       └── service.log
    ├── userB
    │   └── serviceA
    │       └── service.log
    └── userC
        └── serviceA
            └── service.log

    Dans ce cas, vous pouvez configurer l'extraction du chemin de fichier et utiliser une expression régulière pour extraire les informations clés du chemin complet. Le résultat correspondant est ensuite téléchargé vers le Logstore en tant que topic de journal.

    Règles d'extraction du chemin de fichier

    Lorsque vous configurez l'expression régulière, le système détermine automatiquement le format du champ de sortie en fonction du nombre et des noms des groupes de capture. Les règles sont les suivantes :

    Dans une expression régulière pour un chemin de fichier, vous devez échapper les barres obliques ( / ).

    Type de groupe de capture

    Cas d'utilisation

    Champ généré

    Exemple d'expression régulière

    Chemin correspondant (exemple)

    Champ généré (exemple)

    Groupe de capture unique (un seul (.*?))

    Lorsqu'une seule dimension suffit pour distinguer les sources, comme le nom d'utilisateur ou l'environnement.

    Génère le champ __topic__ .

    \/logs\/(.*?)\/app\.log

    /logs/userA/app.log

    __topic__: userA

    Plusieurs groupes de capture - Non nommés (plusieurs (.*?))

    Lorsque plusieurs dimensions sont nécessaires pour distinguer les sources, sans exigence d'étiquettes sémantiques.

    Génère le champ de tag __tag__:__topic_{i}__ , où {i} est l'index du groupe de capture.

    \/logs\/(.*?)\/(.*?)\/app\.log

    /logs/userA/svcA/app.log

    __tag__:__topic_1__:userA ;

    __tag__:__topic_2__:svcA

    Plusieurs groupes de capture nommés (utilisation de (?P<name>.*?)

    Lorsque plusieurs dimensions sont nécessaires pour distinguer les sources et que vous souhaitez des noms de champs clairs et significatifs pour faciliter les requêtes et l'analyse.

    Génère le champ de tag __tag__:{name}

    \/logs\/(?P<user>.*?)\/(?P<service>.*?)\/app\.log

    /logs/userA/svcA/app.log

    __tag__:user:userA ;

    __tag__:service:svcA

Étape 3 : Requête et analyse

Une fois le traitement des journaux et la configuration des plug-ins terminés, cliquez sur Next pour accéder à la page Query and Analysis Configurations .

  • L'index plein texte est activé par défaut et prend en charge la recherche par mot-clé sur le contenu brut des journaux.

  • Pour effectuer des requêtes par champ, une fois que l'option Preview Data a chargé les données, cliquez sur Automatic Index Generation . Log Service génère alors un index de champ basé sur la première entrée de l'aperçu.

Une fois la configuration terminée, cliquez sur Next pour finaliser le processus de collecte.

Étape 4 : Vérifier les résultats de la collecte

Une fois la configuration appliquée, sur la page de requête et d'analyse du Logstore cible, cliquez sur Search & Analyze pour afficher les données des journaux.

FAQ

Cycle de vie de la collecte ponctuelle

Après la création d'une configuration de collecte ponctuelle, elle suit le cycle de vie ci-dessous :

image
  • Fenêtre de distribution de la configuration : LoongCollector (Logtail) peut récupérer la configuration dans les 5 minutes suivant sa création. Après ce délai, les nouvelles instances LoongCollector (Logtail) ne peuvent plus obtenir cette configuration.

  • Suppression automatique de la configuration : Log Service supprime automatiquement la configuration 7 jours après sa création.

  • Exécution de la tâche : la tâche de collecte doit être terminée dans le délai d'exécution imparti. Si la tâche dépasse ce délai, le système l'arrête de force.

Collecte ponctuelle vs collecte de fichiers héritée

La méthode de collecte de fichiers historiques héritée n'est plus recommandée. Par rapport à cette méthode, qui nécessitait la création manuelle de fichiers de configuration sur chaque serveur, la collecte ponctuelle de fichiers améliore l'efficacité de la configuration, la fiabilité et l'observabilité. Le tableau suivant fournit une comparaison détaillée :

Élément de comparaison

Méthode héritée

Collecte ponctuelle de fichiers

Méthode de configuration

Créer un fichier local_event.json sur chaque serveur.

Créer une configuration dans la console ou via l'API et la déployer par lots sur un groupe de machines.

Correspondance de fichiers

Saisir manuellement les chemins et noms de fichiers.

Propose une configuration simplifiée similaire à input_file et prend en charge le filtrage par liste noire.

Surveillance de la progression

Aucun rapport d'état ni journal local.

Utilise un point de contrôle pour suivre la progression de la collecte, avec une granularité allant jusqu'à l'offset actuel de chaque fichier.

Fiabilité

Faible. S'exécute en tant que processus séparé sans contrôles de ressources ni mécanisme de point de contrôle.

Élevée. Utilise la gestion standard des ressources au niveau du pipeline, prend en charge le contrôle de flux pour éviter d'impacter les autres tâches de collecte et permet la reprise après interruption.

Flexibilité

Faible. Vous devez utiliser une configuration de collecte existante.

Élevée. Vous pouvez orchestrer la configuration de collecte et la modifier pendant la tâche.

Échec du heartbeat du groupe de machines

  1. Vérifiez l'ID utilisateur. Si votre serveur n'est pas une instance ECS, ou si votre instance ECS et votre Project appartiennent à des comptes Alibaba Cloud différents, vérifiez si le fichier d'ID utilisateur correct existe dans le répertoire spécifié. S'il n'existe pas, créez-le manuellement à l'aide de l'une des commandes suivantes.

    • Linux : exécutez la commande cd /etc/ilogtail/users/ && touch <uid> pour créer un fichier d'identifiant utilisateur.

    • Windows : accédez au répertoire C:\LogtailData\users\ et créez un fichier vide nommé <uid> .

  2. Vérifiez l'identifiant du groupe de machines : si vous avez utilisé un identifiant défini par l'utilisateur lors de la création du groupe de machines, vérifiez si le fichier user_defined_id existe dans le répertoire spécifié. Si c'est le cas, vérifiez si le contenu du fichier correspond à l'identifiant défini par l'utilisateur configuré pour le groupe de machines.

    • Linux :

      # Configure the user-defined identifier. If the directory does not exist, create it manually.
      echo "user-defined-1" > /etc/ilogtail/user_defined_id
    • Windows : créez un fichier user_defined_id dans le répertoire C:\LogtailData et écrivez-y l'identifiant défini par l'utilisateur. (Si le répertoire n'existe pas, créez-le manuellement.)

  3. Si l'ID utilisateur et l'identifiant du groupe de machines sont corrects, consultez la rubrique Dépannage des problèmes de groupe de machines LoongCollector (Logtail) pour les étapes de dépannage.

Ajout d'un serveur à un groupe de machines

Pour ajouter un nouveau serveur, tel qu'une instance ECS nouvellement déployée ou un serveur auto-géré, à un groupe de machines existant, associez-le au groupe afin que la configuration de collecte soit automatiquement appliquée.

Important

Si un serveur est ajouté à un groupe de machines plus de 5 minutes après la création de la configuration de collecte ponctuelle, il ne recevra pas la configuration. Consultez le compte à rebours en haut de la page de configuration de collecte pour voir le temps restant.

Prérequis

  • Un groupe de machines existant.

  • LoongCollector (Logtail) est installé sur le nouveau serveur.

Procédure

  1. Consultez l'identifiant du groupe de machines cible.

    1. Dans le Project cible, cliquez sur imageimage puis sur Resources > Machine Groups dans le volet de navigation de gauche.

    2. Sur la page Machine Groups, cliquez sur le nom du groupe de machines cible.

    3. Sur la page de configuration du groupe de machines, consultez l'identifiant du groupe de machines.

  2. Effectuez l'une des actions suivantes en fonction du type d'identifiant.

    Remarque

    Un seul groupe de machines ne peut pas contenir à la fois des serveurs Linux et Windows. Ne configurez pas le même identifiant défini par l'utilisateur sur des serveurs Linux et Windows. Pour configurer plusieurs identifiants définis par l'utilisateur sur un seul serveur, séparez-les par un saut de ligne.

    • Type 1 : L'identifiant du groupe de machines est une adresse IP

      1. Sur le serveur, exécutez la commande suivante pour ouvrir le fichier app_info.json et consulter la valeur ip .

        cat /usr/local/ilogtail/app_info.json
      2. Sur la page de configuration du groupe de machines cible, cliquez sur Modify et saisissez l'adresse IP du serveur. Si vous disposez de plusieurs adresses IP, séparez-les par des sauts de ligne.

      3. Une fois la configuration terminée, cliquez sur Save et confirmez l'état du heartbeat. Si l'état est OK, le serveur applique automatiquement la configuration de collecte du groupe de machines.

        Si l'état du heartbeat est FAIL, consultez la rubrique Échec du heartbeat du groupe de machines pour les instructions de dépannage.
    • Type 2 : L'identifiant du groupe de machines est un identifiant défini par l'utilisateur

      Selon le système d'exploitation, écrivez la chaîne d'identifiant défini par l'utilisateur correspondant au groupe de machines cible dans le fichier spécifié :

      Si le répertoire n'existe pas, créez-le manuellement. Le chemin et le nom du fichier sont fixés par Log Service et ne peuvent pas être personnalisés.
      • Linux : écrivez une chaîne personnalisée dans le fichier /etc/ilogtail/user_defined_id .

      • Windows : écrivez une chaîne personnalisée dans C:\LogtailData\user_defined_id .

Annexe : Plugins de traitement natifs

Analyse par expression régulière

Extrayez les champs des journaux à 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.

Exemple :

Journal brut sans aucun traitement

Utilisation du plugin d'analyse par expression régulière

127.0.0.1 - - [16/Aug/2024:14:37:52 +0800] "GET /wp-admin/admin-ajax.php?action=rest-nonce HTTP/1,1" 200 41 "http://www.example.com/wp-admin/post-new.php?post_type=page" "Mozilla/5,0 (Windows NT 10.0; Win64; x64) AppleWebKit/537,36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36 Edg/127.0.0.0"
body_bytes_sent: 41
    http_referer: http://www.example.com/wp-admin/post-new.php?post_type=page
    http_user_agent: Mozilla/5,0 (Windows NT 10.0; ×64) AppleWebKit/537,36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36 Edg/127.0.0.0
    remote_addr: 127.0.0.1
    remote_user: -
    request_method: GET
    request_protocol: HTTP/1,1
    request_uri: /wp-admin/admin-ajax.php?action=rest-nonce
    status: 200
    time_local: 16/Aug/2024:14:37:52 +0800

Procédure : Sur la page Logtail Configuration, dans la zone Processor Configurations, cliquez sur Add Processor et sélectionnez Native Processor > Data Parsing (Regex Mode) :

  • Regular Expression : Utilisée pour faire correspondre les journaux. Vous pouvez la générer automatiquement ou la saisir manuellement :

    • Génération automatique :

      • Cliquez sur Generate Regex Automatically.

      • Dans le champ Log Sample, sélectionnez le contenu du journal à extraire.

      • Cliquez sur Generate Regex.

    • Saisie manuelle : Enter Regex Manually en fonction du format du journal.

    Une fois la configuration terminée, cliquez sur Validate pour vérifier si l'expression régulière peut analyser correctement le contenu du journal.

  • Extracted Field : Définissez le nom de champ correspondant (Key) pour le contenu du journal extrait (Value).

Analyse par délimiteur

Structurez le contenu du journal à l'aide d'un séparateur, qui l'analyse en plusieurs paires clé-valeur. Prend en charge les séparateurs à un ou plusieurs caractères.

Exemple :

Journal brut sans aucun traitement

Séparation des champs par le caractère spécifié ,

05/May/2025:13:30:28,10.10.*.*,"POST /PutData?Category=YunOsAccountOpLog&AccessKeyId=****************&Date=Fri%2C%2028 %20Jun%202013 %2006 %3A53%3A30%20GMT&Topic=raw&Signature=******************************** HTTP/1,1",200,18204,aliyun-sdk-java
ip:10.10.*.*
    request:POST /PutData?Category=YunOsAccountOpLog&AccessKeyId=****************&Date=Fri%2C%2028 %20Jun%202013 %2006 %3A53%3A30%20GMT&Topic=raw&Signature=******************************** HTTP/1.1
    size:18204
    status:200
    time:05/May/2025:13:30:28
    user_agent:aliyun-sdk-java

Procédure : Sur la page Logtail Configuration, dans la zone Processor Configurations, cliquez sur Add Processor et sélectionnez Native Processor > Data Parsing (Delimiter Mode) :

  • Delimiter : Spécifiez le caractère utilisé pour séparer le contenu du journal.

    Exemple : Pour un fichier CSV, sélectionnez Custom et saisissez une virgule (,).

  • Quote : Lorsqu'une valeur de champ contient le séparateur, vous devez spécifier un guillemet pour entourer le champ afin d'éviter une séparation incorrecte.

  • Extracted Field : Définissez le nom de champ correspondant (Key) 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 (_).

    • Doivent commencer par une lettre ou un trait de soulignement (_).

    • Longueur maximale : 128 octets.

Analyse JSON

Structure un journal JSON de type objet, qui l'analyse en paires clé-valeur.

Exemple :

Journal brut sans aucun traitement

Extraction automatique des paires clé-valeur JSON standard

{"url": "POST /PutData?Category=YunOsAccountOpLog&AccessKeyId=U0Ujpek********&Date=Fri%2C%2028%20Jun%202013%2006%3A53%3A30%20GMT&Topic=raw&Signature=pD12XYLmGxKQ%2Bmkd6x7hAgQ7b1c%3D HTTP/1.1", "ip": "10.200.98.220", "user-agent": "aliyun-sdk-java", "request": {"status": "200", "latency": "18204"}, "time": "05/Jan/2025:13:30:28"}
ip: 10.200.98.220
    request: {"status": "200", "latency" : "18204" }
    time: 05/Jan/2025:13:30:28
    url: POST /PutData?Category=YunOsAccountOpLog&AccessKeyId=U0Ujpek******&Date=Fri%2C%2028 %20Jun%202013 %2006 %3A53%3A30%20GMT&Topic=raw&Signature=pD12XYLmGxKQ%2Bmkd6x7hAgQ7b1c%3D HTTP/1,1
    user-agent:aliyun-sdk-java

Procédure : Sur la page Logtail Configuration, dans la zone Processor Configurations, cliquez sur Add Processor et sélectionnez Native Processor > Data Parsing (JSON Mode) :

  • Original Field : La valeur par défaut est content. Ce champ est utilisé pour stocker le contenu brut du journal à analyser.

Analyse JSON imbriqué

Analyse les journaux JSON imbriqués en paires clé-valeur en spécifiant la profondeur d'expansion.

Exemple :

Journal brut sans aucun 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

{"s_key":{"k1":{"k2":{"k3":{"k4":{"k51":"51","k52":"52"},"k41":"41"}}}}}
0_s_key_k1_k2_k3_k41:41
    0_s_key_k1_k2_k3_k4_k51:51
    0_s_key_k1_k2_k3_k4_k52:52
1_s_key:{"k1":{"k2":{"k3":{"k4":{"k51":"51","k52":"52"},"k41":"41"}}}}

Procédure : Sur la page Logtail Configuration, dans la zone Processor Configurations, cliquez sur Add Processor et sélectionnez Extended Processor > Expand JSON Field :

  • Original Field : Le nom du champ source à développer, par exemple content.

  • JSON Expansion Depth : Le niveau d'expansion de l'objet JSON. 0 signifie entièrement développé (par défaut), 1 signifie le niveau actuel, et ainsi de suite.

  • Character to Concatenate Expanded Keys : Le séparateur pour les noms de champ lors de l'expansion JSON. La valeur par défaut est un trait de soulignement _.

  • Name Prefix of Expanded Keys : Spécifiez le préfixe pour les noms de champ après l'expansion JSON.

  • Expand Array : Activez cette option pour développer un tableau en paires clé-valeur avec des index.

    Exemple : {"k":["a","b"]} se développe en {"k[0]":"a","k[1]":"b"}.

    Pour renommer les champs développés, par exemple de prefix_s_key_k1 à new_field_name, vous pouvez ajouter ensuite un plugin Rename Fields pour effectuer le mappage.

Analyse de tableau JSON

Utilisez la fonction json_extract pour extraire des objets JSON d'un tableau JSON.

Exemple :

Journal brut sans aucun traitement

Extraire la structure du tableau JSON

[{"key1":"value1"},{"key2":"value2"}]
json1:{"key1":"value1"}
    json2:{"key2":"value2"}

Procédure : Sur la page Logtail Configuration, dans la zone Processor Configurations, 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 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

Structure le contenu du journal en fonction de la définition dans le fichier de configuration des journaux Apache, qui l'analyse en plusieurs paires clé-valeur.

Exemple :

Journal brut sans aucun traitement

Analyse au format de journal Apache Common combined

1 192.168.1.10 - - [08/May/2024:15:30:28 +0800] "GET /index.html HTTP/1,1" 200 1234 "https://www.example.com/referrer" "Mozilla/5,0 (Windows NT 10.0; Win64; x64) AppleWebKit/537,36 (KHTML, like Gecko) Chrome/123,0.X.X Safari/537,36"
http_referer:https://www.example.com/referrer
    http_user_agent:Mozilla/5,0 (Windows NT 10.0; Win64; x64) AppleWebKit/537,36 (KHTML, like Gecko) Chrome/123,0.X.X Safari/537.36
    remote_addr:192.168.1.10
    remote_ident:-
    remote_user:-
    request_method:GET
    request_protocol:HTTP/1,1
    request_uri:/index.html
    response_size_bytes:1234
    status:200
    time_local:[08/May/2024:15:30:28 +0800]

Procédure : Sur la page Logtail Configuration, dans la zone Processor Configurations, cliquez sur Add Processor et sélectionnez Native Processor > Data Parsing (Apache Mode) :

  • Log Format : combined.

  • APACHE LogFormat Configuration : Le système remplit automatiquement la configuration en fonction du Log Format.

    Important

    Assurez-vous de vérifier le contenu rempli automatiquement pour vous assurer qu'il est exactement identique au LogFormat défini dans le fichier de configuration Apache de votre serveur, qui se trouve généralement à l'emplacement /etc/apache2/apache2.conf.

Analyse des journaux IIS

Structure le contenu du journal en fonction de la définition du format de journal IIS, qui l'analyse en plusieurs paires clé-valeur.

Exemple de comparaison :

Journal brut

Adaptation au format spécifique du serveur Microsoft IIS

#Fields: date time s-sitename s-ip cs-method cs-uri-stem cs-uri-query s-port cs-username c-ip cs(User-Agent) sc-status sc-substatus sc-win32-status sc-bytes cs-bytes time-taken
c-ip: cs-username
    cs-bytes: sc-substatus
    cs-method: cs-method
    cs-uri-query: cs-uri-query
    cs-uri-stem: cs-uri-stem
    cs-username: s-port
    date: #Fields:
    s-computername: s-sitename
    s-ip: s-ip
    s-sitename: time
    sc-bytes: sc-status
    sc-status: c-ip
    sc-win32-status: cs (User-Agent)
    time: date
    time-taken: sc-win32-status

Procédure : Sur la page Logtail Configuration, dans la zone Processor Configurations, cliquez sur Add Processor et sélectionnez Native Processor > Data Parsing (IIS Mode) :

  • Log Format : Sélectionnez le format de journal utilisé par vos journaux IIS.

    • IIS : Format de fichier journal IIS.

    • NCSA : Format de journal commun NCSA.

    • W3C : Format de fichier journal étendu W3C.

  • IIS Configuration Fields : Lorsque vous sélectionnez IIS ou NCSA, Simple Log Service définit par défaut le champ de configuration IIS. Lorsque vous sélectionnez W3C, définissez-le sur le contenu du paramètre logExtFileFlags dans votre fichier de configuration IIS. Par exemple :

    logExtFileFlags="Date, Time, ClientIP, UserName, SiteName, ComputerName, ServerIP, Method, UriStem, UriQuery, HttpStatus, Win32Status, BytesSent, BytesRecv, TimeTaken, ServerPort, UserAgent, Cookie, Referer, ProtocolVersion, Host, HttpSubStatus"

Masquage des données

Masquez les données sensibles dans les journaux.

Exemple :

Journal brut sans aucun traitement

Résultat du masquage

[{'account':'1812213231432969','password':'04a23f38'}, {'account':'1812213685634','password':'123a'}]
[{'account':'1812213231432969','password':'********'}, {'account':'1812213685634','password':'********'}]

Procédure : Sur la page Logtail Configuration, dans la zone Processor Configurations, cliquez sur Add Processor et sélectionnez Native Processor > Data Masking :

  • Original Field : Le champ source contenant le contenu du journal avant l'analyse.

  • Data Masking Method :

    • const : Remplace le contenu sensible par la chaîne spécifiée.

    • md5 : Remplace le contenu sensible par son hachage MD5 correspondant.

  • Replacement String : Lorsque vous sélectionnez const pour la Data Masking Method, vous devez saisir une chaîne pour remplacer le contenu sensible.

  • Content Expression that Precedes Replaced Content : Utilisé pour trouver le contenu sensible. Configurez à l'aide de la syntaxe RE2.

  • Content Expression to Match Replaced Content : L'expression pour le contenu sensible. Configurez à l'aide de la syntaxe RE2.

Analyse temporelle

Analyse le champ temporel dans le journal et définit le résultat de l'analyse comme champ __time__ du journal.

Exemple :

Journal brut sans aucun traitement

Analyse temporelle

{"level":"INFO","timestamp":"2025-09-23T19:11:47+0800","cluster":"yilu-cluster-0728","message":"User logged in successfully","userId":"user-123"}

Dans la vue des détails du journal SLS, le journal JSON est correctement analysé en champs structurés. Chaque champ (cluster, level, message, time, userId) et sa valeur sont affichés indépendamment.

Procédure : Sur la page Logtail Configuration, dans la zone Processor Configurations, cliquez sur Add Processor et sélectionnez Native Processor > Time Parsing :

  • Original Field : Le champ source contenant le contenu du journal avant l'analyse.

  • Time Format : Définissez le format temporel correspondant en fonction du contenu temporel dans le 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 le fuseau horaire de l'environnement où le processus LoongCollector (Logtail) s'exécute.