Par défaut, Log Service stocke les journaux bruts dans le champ content. Utilisez un plugin d'analyse pour extraire des paires clé-valeur structurées, ce qui permet d'effectuer des requêtes, des agrégations et des visualisations au niveau des champs. Les plugins d'analyse s'appliquent à n'importe quel champ : il vous suffit de spécifier le champ cible et de choisir un plugin adapté au format du contenu.
Exemple d'analyse des données
Voici un journal d'application courant avant et après l'analyse :
Sans plugin d'analyse des données
Sans analyse, toutes les informations sont stockées dans un seul champ content, ce qui rend les données difficiles à interroger et à analyser par champ.
Content:"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""
Avec un plugin d'analyse par expression régulière
Un plugin d'analyse par expression régulière extrait des champs nommés qui peuvent être interrogés et analysés indépendamment.
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; Win64; ×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
Sélection d'un plugin d'analyse des données
Recommandé : Analyse dédiée aux formats de journaux. Pour les journaux Nginx, Apache ou IIS, utilisez le mode d'analyse dédié (Analyse en mode Nginx, Analyse en mode Apache, Analyse en mode IIS). Aucune règle manuelle n'est nécessaire.
Alternative : Analyse de données structurées (JSON / délimiteur). Pour les objets JSON ou les journaux utilisant un délimiteur fixe (virgule, barre verticale, etc.), utilisez l'analyse JSON ou l'analyse en mode délimiteur. La configuration est simple et l'analyse rapide.
Solution de secours : Analyse par expression régulière. Utilisez l'analyse par expression régulière pour les journaux irréguliers et non structurés que les autres modes ne peuvent pas traiter. Bien que polyvalente, l'expression régulière est plus difficile à écrire et à déboguer, et peut réduire le débit.
Procédure
Ajoutez un plugin d'analyse lors de la création ou de la modification d'une configuration Logtail.
Modifier une configuration existante
Connectez-vous à la console Simple Log Service.
-
Dans la section Projects, cliquez sur celui que vous souhaitez utiliser.

Dans l'onglet , cliquez sur > à côté du Logstore cible, puis choisissez .
Dans la liste Logtail Configurations, cliquez sur Manage Logtail Configuration dans la colonne Actions de la configuration cible.
Cliquez sur Edit en haut de la page. Dans la section Processor Configurations en bas de la page, ajoutez un plugin Logtail, puis cliquez sur Save.
Créer une nouvelle configuration
Connectez-vous à la console Simple Log Service.
Cliquez sur la carte Quick Data Import située à droite de la console.
-
Dans la boîte de dialogue Import Data, cliquez sur une carte de source de données et suivez l'assistant. À l'étape Logtail Configurations, ajoutez un plugin Logtail dans la section Logtail Configurations.
RemarqueLes paramètres du plugin sont identiques à ceux utilisés lors de la modification d'une configuration Logtail.
Utilisation des plugins d'analyse des données
Paramètres communs
Ces paramètres s'appliquent à tous les plugins d'analyse des données et ne sont pas répétés dans les sections suivantes.
|
Paramètre |
Description |
|
Original Field |
Champ source contenant le contenu du journal à analyser. Par défaut, il s'agit de |
|
Retain Original Field if Parsing Fails |
Recommandé. Conserve le contenu original dans le champ source en cas d'échec de l'analyse (par exemple, en raison d'une incompatibilité de format), ce qui préserve les données pour le débogage. |
|
Retain Original Field if Parsing Succeeds |
Conserve le contenu original du journal après une analyse réussie. Généralement utilisé pour la vérification des données. |
|
New Name of Original Field |
Renomme le champ source conservé afin d'éviter les conflits de noms lorsque l'option Keep source field on parse failure ou Keep source field on parse success est activée. |
Analyse par expression régulière
Extrait les champs des journaux à l'aide d'une expression régulière et les analyse sous forme de paires clé-valeur. Très flexible, cette méthode s'adapte à presque tous les formats de texte.
Configuration
-
Détails des paramètres
Outre les paramètres communs, ce plugin dispose des paramètres principaux suivants :
Paramètre
Description
Regular Expression
Expression régulière utilisée pour faire correspondre le contenu du journal.
-
Si vous fournissez un exemple de journal, vous pouvez générer automatiquement ou saisir manuellement une expression régulière.
-
Cliquez sur Generate. Dans la zone de texte Log Sample, mettez en surbrillance le contenu à extraire, puis cliquez sur Generate Regular Expression. Simple Log Service génère une expression régulière basée sur votre sélection.
-
Cliquez sur Manually Enter Regular Expression et saisissez une expression régulière. Après avoir saisi l'expression, cliquez sur Validate pour confirmer qu'elle analyse correctement le contenu du journal. Pour plus d'informations, consultez la rubrique Comment tester une expression régulière.
-
-
Si vous ne fournissez pas d'exemple de journal, vous devez saisir manuellement une expression régulière correspondant au format de votre journal.
Extracted Field
Spécifie les noms de champ (clés) pour le contenu du journal extrait (valeurs).
-
-
Exemple de configuration
-
Journal d'entrée
127.0.0.1 - - [16/Oct/2023:12:36:49 +0800] "GET /index.html HTTP/1.1" 200 612 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36" -
Configuration du plugin
Suivez la Procédure pour configurer le plugin. L'expression régulière est
(\S+)\s-\s(\S+)\s\[([^]]+)]\s"(\w+)\s(\S+)\s([^"]+)"\s(\d+)(\s\d+)[^-]+([^"]+)"\s"([^"]+).*.Définissez le Source field sur
contentet saisissez un journal d'accès Nginx dans la zone de texte Log sample. L'analyse du journal avec l'expression régulière remplit la section Extracted log fields avec des paires clé-valeur, telles que remote_addr, remote_user, time_local, request_method, request_uri, request_protocol, status, body_bytes_sent, http_referer et http_user_agent. Les options Keep source field on parse failure et Keep source field on parse success ne sont pas sélectionnées. Résultat de l'analyse
-
Analyse JSON
Analyse les objets JSON en paires clé-valeur.
Limites
Le plugin JSON extrait uniquement les paires clé-valeur de premier niveau d'un objet JSON. Il n'analyse pas directement les tableaux JSON. Pour gérer des structures JSON complexes, utilisez l'approche décrite dans la rubrique Traitement de JSON complexes.
Configuration
-
Paramètres
Ce plugin utilise uniquement les paramètres de configuration généraux.
-
Exemple de configuration
-
Journal d'entrée
{"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/2020:13:30:28"} -
Configuration du plugin
Suivez la Procédure. Définissez le processor type sur JSON et le source field sur
content. Désactivez les cases à cocher keep source field on failure et keep source field on success. Laissez les advanced parameters désactivés, puis cliquez sur OK. -
Résultat de l'analyse
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/2020:13:30:28
-
Analyse en mode délimiteur
Le plugin d'analyse en mode délimiteur utilise un caractère de séparation pour structurer le contenu du journal, en l'analysant sous forme de plusieurs paires clé-valeur.
Configuration
-
Paramètres
Outre les paramètres communs, ce plugin dispose des paramètres suivants :
Paramètre
Description
Delimiter
Sélectionnez le délimiteur correspondant au contenu de votre journal, tel qu'une barre verticale (|).
RemarquePour spécifier un Non-printable Character comme délimiteur, recherchez sa valeur hexadécimale dans la table de codes ASCII et saisissez-la au format
0x<valeur hexadécimale>. Par exemple, le caractère non imprimable dont le code ASCII est 1 est saisi sous la forme 0x01.Quote
Si un champ de journal contient le délimiteur, vous devez entourer le champ avec un caractère de guillemet. Simple Log Service analyse le contenu entouré par le caractère de guillemet comme un seul champ. Sélectionnez le caractère de guillemet correspondant au format de votre journal.
RemarquePour spécifier un Non-printable Character comme caractère de guillemet, recherchez sa valeur hexadécimale dans la table de codes ASCII et saisissez-la au format
0x<valeur hexadécimale>. Par exemple, le caractère non imprimable dont le code ASCII est 1 est saisi sous la forme 0x01.Extracted log fields
-
Si vous fournissez un exemple de journal, Simple Log Service extrait le contenu du journal en fonction de l'exemple et du délimiteur spécifié. Log Service extrait le contenu dans des valeurs (Values). Vous devez attribuer une clé (Key) à chaque valeur.
-
Si vous ne fournissez pas d'exemple de journal, aucune liste de valeurs n'est générée et vous devez saisir manuellement les clés en fonction de vos données de journal et du délimiteur.
Une clé ne peut contenir que des lettres, des chiffres et des traits de soulignement (_), et doit commencer par une lettre ou un trait de soulignement (_). La longueur maximale est de 128 octets.
Allow Missing Field
Ce paramètre détermine si un journal est chargé dans Simple Log Service lorsque le nombre de valeurs extraites est inférieur au nombre de clés spécifiées. Sélectionnez Allow Missing Field pour charger le journal.
Par exemple, si le journal est
11|22|33|44, le délimiteur est une barre verticale (|) et les clés sontA,B,C,DetE.-
Si vous sélectionnez Allow Missing Field, la valeur du champ
Eest vide et Simple Log Service charge le journal. -
Si vous ne sélectionnez pas Allow Missing Field, le journal est ignoré.
RemarqueLe paramètre Allow Missing Field pour l'analyse en mode délimiteur est pris en charge par Logtail pour Linux 1.0.28 et versions ultérieures, ainsi que par Logtail pour Windows 1.0.28.0 et versions ultérieures.
Processing Method of Field to which Excess Part is Assigned
Définit la manière de traiter un journal lorsque le nombre de valeurs extraites dépasse le nombre de clés spécifiées.
-
Expand : Conserve les valeurs excédentaires et les ajoute à des champs distincts au format
__column$i__, où$iest l'index du champ excédentaire, commençant à 0. Par exemple,__column0__et__column1__. -
Retain : Ajoute toutes les valeurs excédentaires à un seul champ nommé
__column0__. -
Discard : Ignore les valeurs excédentaires.
-
-
Exemples de configuration
-
Exemple 1 : Délimiteur à caractère unique
-
Journal d'entrée
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 -
Configuration du plugin
Suivez la Procédure. Utilisez une virgule (,) comme délimiteur et un guillemet double (") comme caractère de guillemet.
RemarqueDélimiteur : Vous pouvez utiliser un caractère unique pour fractionner les journaux, tel qu'une tabulation (
\t), une barre verticale (|), un espace, une virgule (,), un point-virgule (;) ou un caractère non imprimable. Le délimiteur ne peut pas être un guillemet double (").Si un guillemet double (") apparaît dans un champ, vous devez l'échapper sous la forme "" dans le journal. Simple Log Service restaure automatiquement "" en " lors de l'analyse du champ. Par exemple, si le délimiteur est une virgule (,) et le caractère de guillemet est un guillemet double ("), et qu'un champ contient à la fois une virgule et un guillemet double, vous devez entourer le champ avec le caractère de guillemet et échapper le guillemet double sous la forme "". L'entrée de journal résultante,
Chevy,"Venture ""Extended Edition, Very Large""","", est analysée en trois champs :Chevy,Venture "Extended Edition, Very Large"et un champ vide.Caractère de guillemet : Si un champ de journal contient le délimiteur, vous devez entourer le champ avec un caractère de guillemet. Log Service analyse le contenu entouré comme un seul champ. Le caractère de guillemet peut être un caractère unique, tel qu'une tabulation (
\t), une barre verticale (|), un espace, une virgule (,), un point-virgule (;) ou un caractère non imprimable.Par exemple, si le délimiteur est une virgule (,) et le caractère de guillemet est un guillemet double ("), Log Service analyse le journal
1997,"ac,moon",3000.00en trois champs :1997,ac,moonet3000.00. -
Résultat de l'analyse
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
-
-
Exemple 2 : Délimiteur à caractères multiples
-
Journal d'entrée
05/May/2022:13:30:28&&10.200.**.**&&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 -
Configuration du plugin
Suivez la Procédure. Utilisez
&&comme délimiteur et conservez le caractère de guillemet par défaut, qui est un guillemet double (").ImportantEn mode multi-caractères, le délimiteur peut contenir deux ou trois caractères, tels que ||, &&& ou ^_^. Logtail analyse les journaux en fonction de la correspondance du délimiteur, il n'est donc pas nécessaire d'entourer les champs avec un caractère de guillemet. Assurez-vous qu'aucun contenu de champ ne contient une correspondance exacte du délimiteur. Sinon, Logtail risque de fractionner incorrectement le champ.
-
Résultat de l'analyse
ip:10.200.**.** 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/2022:13:30:28 user_agent:aliyun-sdk-java
-
-
Gestion des échecs d'analyse par délimiteur
Si le délimiteur est mélangé à d'autres caractères dans le contenu du journal — par exemple, si l'horodatage contient lui-même un espace et une virgule, ou si des espaces entourent le délimiteur — l'analyse en mode délimiteur peut ne pas séparer les limites des champs comme prévu. Les valeurs de champ extraites risquent alors d'être incorrectes.
Exemple
Le journal suivant utilise une barre verticale (|) comme délimiteur :
2026-03-06 21:04:32,701 - | 4 | 45 | 980
Étant donné que l'horodatage contient un espace, l'analyse en mode délimiteur conserve le trait d'union final de l'horodatage, ce qui donne 2026-03-06 21:04:32,701 -. De plus, les champs numériques 4, 45 et 980 comportent des espaces de début et de fin.
Dans ce cas, basculez vers l'analyse par expression régulière et utilisez Regular Expression pour rédiger une expression régulière correspondant exactement à chaque valeur de champ. Par exemple, l'expression régulière suivante extrait correctement le journal précédent en quatre champs :
^(\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2},\d{3})\s+-\s+\|\s+(\d+)\s+\|\s+(\d+)\s+\|\s+(\d+)$
Définissez Extracted Field sur time, field1, field2 et field3 dans cet ordre. Le résultat de l'analyse est le suivant :
time: 2026-03-06 21:04:32,701
field1: 4
field2: 45
field3: 980
Pour savoir comment déboguer une expression régulière, reportez-vous à Comment tester une expression régulière Comment tester une expression régulière .
Dépannage
Si vous ignorez si un plug-in dans Processor Configurations est à l'origine de l'échec d'analyse, supprimez les plug-ins un par un et recollez les journaux pour vérifier :
Dans la liste Logtail Configurations, repérez la configuration Logtail cible et cliquez sur Manage Logtail Configuration.
Cliquez sur Edit. Dans la section Processor Configurations, supprimez un plug-in de traitement et cliquez sur Save.
Recollez les fichiers journaux et vérifiez si le résultat d'analyse redevient normal.
Répétez les étapes précédentes pour supprimer les plug-ins un par un jusqu'à identifier celui qui cause l'échec d'analyse.
Analyse en mode Nginx
Le plug-in en mode Nginx analyse le contenu du journal en paires clé-valeur selon la définition log_format.
Journaux Nginx
Configuration
-
Paramètres
Outre les paramètres communs, ce plug-in dispose des paramètres suivants :
Paramètre
Description
NGINX Log Configuration
La définition log_format issue de votre fichier de configuration Nginx.
log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$request_time $request_length ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent"';Extracted Field
Le plug-in extrait automatiquement les champs de journal (clés) en fonction de la NGINX Log Configuration.
-
Exemple de configuration
-
Journal d'entrée
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" -
Configuration du plug-in
Suivez la Procédure. En production, la directive
log_formatdoit correspondre à la définition de votre fichier de configuration Nginx (généralement /etc/nginx/nginx.conf).log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$request_time $request_length $status $body_bytes_sent ' '"$http_referer" "$http_user_agent"'; -
Résultat de l'analyse
body_bytes_sent: 368 http_referer: - http_user_agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.*.* 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
-
Analyse selon le modèle Apache
Le plug-in d'analyse selon le modèle Apache structure le contenu du journal en paires clé-valeur en se basant sur les définitions de votre fichier de configuration des journaux Apache.
Journaux Apache
Configuration
-
Paramètres
Outre les paramètres communs, ce plug-in dispose des paramètres suivants :
Paramètre
Description
Log Format
Sélectionnez le format de journal défini dans votre fichier de configuration des journaux Apache. Les options incluent
common,combinedetcustom.APACHE LogFormat Configuration
La directive
LogFormatissue de votre fichier de configuration Apache.-
Lorsque vous définissez le Log Format sur common ou combined, les champs de configuration correspondants sont automatiquement renseignés. Vérifiez que le format est cohérent avec celui défini dans le fichier de configuration Apache.
-
Lorsque vous définissez le Log Format sur Custom, saisissez la chaîne de format réelle. Par exemple,
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %D %f %k %p %q %R %T %I %O" customized.
Extracted Field
Champs de journal (clés) extraits automatiquement en fonction du contenu de la APACHE LogFormat Configuration.
-
-
Exemple de configuration
-
Journal d'entrée
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" -
Configuration du plug-in
Suivez la Procédure. Définissez Log format sur
combined. -
Résultat de l'analyse
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]
-
Analyse en mode IIS
Le plug-in de mode IIS analyse le contenu des journaux en plusieurs paires clé-valeur, conformément à la définition du format de journal IIS.
Journaux IIS
Configuration
-
Descriptions des paramètres
Outre les paramètres communs, ce plug-in dispose des paramètres suivants :
Paramètre
Description
Log Format
Format de journal utilisé par le serveur IIS. Les formats pris en charge incluent IIS, NCSA et W3C.
IIS Configuration Fields
-
Si le format de journal est IIS ou NCSA, Log Service définit par défaut les champs de configuration IIS.
-
Si le format de journal est W3C, définissez ce paramètre sur le contenu du paramètre
logExtFileFlagsdans 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"-
Chemin d'accès par défaut au fichier de configuration IIS 5 :
C:\WINNT\system32\inetsrv\MetaBase.bin. -
Chemin d'accès par défaut au fichier de configuration IIS 6 :
C:\WINDOWS\system32\inetsrv\MetaBase.xml. -
Chemin d'accès par défaut au fichier de configuration IIS 7 :
C:\Windows\System32\inetsrv\config\applicationHost.config.
-
Extracted Field
Log Service génère automatiquement les champs de journal extraits (clés) en fonction du contenu du paramètre IIS Configuration Fields.
-
-
Exemple de configuration
-
Journal d'entrée
#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 2023-10-27 08:00:00 W3SVC1 192.168.1.1 GET /index.html - 80 - 10.0.0.5 Mozilla/5.0 200 0 0 500 100 150 -
Configuration du plug-in
Suivez la procédure. Définissez Log format sur IIS.
-
Résultat analysé
date: 2023-10-27 time: 08:00:00 s-sitename: W3SVC1 s-ip: 192.168.1.1 cs-method: GET cs-uri-stem: /index.html cs-uri-query: - s-port: 80 cs-username: - c-ip: 10.0.0.5 cs(User-Agent): Mozilla/5.0 sc-status: 200 sc-substatus: 0 sc-win32-status: 0 sc-bytes: 500 cs-bytes: 100 time-taken: 150
-
FAQ
Échec de l'expression régulière dans Log Service
Vérifiez les problèmes courants suivants :
Échantillon de journal non correspondant : assurez-vous que l'échantillon de journal utilisé dans la configuration Logtail correspond exactement au format des journaux collectés, y compris les espaces et les caractères spéciaux.
Formats de journal mixtes : si votre source de journal contient plusieurs formats, une seule expression régulière peut ne pas correspondre à tous. Activez l'option keep unmatched content pour conserver les journaux bruts en cas d'échec de l'analyse. Vous pouvez également utiliser plusieurs configurations Logtail pour gérer les formats séparément.
Différences d'échappement entre le code et la console : une expression régulière copiée depuis le code peut contenir des caractères d'échappement supplémentaires, tels que
\\S+. Dans la console Log Service, utilisez une seule barre oblique inverse, telle que\S+.
Interrogation des journaux d'un fichier spécifique
Log Service ajoute automatiquement le champ de métadonnées __tag__:__path__ à chaque entrée de journal, contenant le chemin d'accès complet du fichier source. Utilisez ce champ pour filtrer les journaux d'un fichier spécifique tel que /var/log/app/error.log : * AND __tag__:__path__: /var/log/app/error.log.
Impossible d'interroger les données historiques après modification de l'index
Les modifications d'index s'appliquent uniquement aux nouvelles données ingérées. Pour interroger les données historiques existantes avec la nouvelle configuration d'index, exécutez une tâche de réindexation.
Gestion des journaux JSON avec des tableaux
Le plug-in d'analyse JSON ne peut pas directement diviser un tableau JSON en entrées de journal distinctes.
Solution :
Log Service fournit le plug-in de dépliage de champ JSON pour déplier ou diviser un champ de tableau JSON.
Fonctionnement : en spécifiant une profondeur de dépliage, le plug-in parcourt le champ de tableau et génère une nouvelle entrée de journal pour chaque élément du tableau. Le plug-in copie les autres champs (membres non tableaux) du journal original vers chaque nouvelle entrée de journal.
Exemple de comparaison :
Cette opération augmente le nombre d'entrées de journal. Un seul journal contenant un tableau de N éléments devient N entrées de journal. Tenez-en compte lors de la planification de vos coûts de stockage et d'indexation des journaux.
Profondeur de dépliage : niveau auquel l'objet JSON est déplié. Une valeur de 0 (par défaut) déplie entièrement l'objet, 1 déplie uniquement le niveau actuel, et ainsi de suite.
|
Journal brut |
Profondeur de dépliage : 0 (préfixe ajouté) |
Profondeur de dépliage : 1 (préfixe ajouté) |
|
|
|
Analyse des journaux avec du texte et du JSON intégré
Enchaînez plusieurs plug-ins de traitement, où la sortie de l'un devient l'entrée du suivant.
Cas d'utilisation :
Supposons que votre journal d'application ait le format suivant, qui inclut un horodatage, un niveau de journal et un message JSON intégré.
2025-11-12 10:30:15 INFO Request details: {"trace_id": "xyz-123", "user_id": 500, "action": "login"}
Stratégie d'analyse : ajoutez les deux plug-ins suivants dans l'ordre. Spécifiez le champ source correct pour le deuxième plug-in. Cette approche en chaîne fonctionne pour tout journal de format mixte.
-
Utilisez un plug-in d'analyse par expression régulière pour extraire les champs de texte principaux et capturer la chaîne JSON intégrée dans un champ distinct. Le résultat est le suivant :
{ "log_time": "2025-11-12 10:30:15", "log_level": "INFO", "json_message": "{\"trace_id\": \"xyz-123\", \"user_id\": 500, \"action\": \"login\"}" } -
Ajoutez un plug-in d'analyse JSON et définissez
json_messagecomme champ source pour analyser le contenu JSON en paires clé-valeur. Le résultat est le suivant :{ "log_time": "2025-11-12 10:30:15", "log_level": "INFO", "trace_id": "xyz-123", "user_id": 500, "action": "login" }
Documents connexes
-
Configurer un pipeline Logtail à l'aide des opérations API :
-
Configurer un plug-in de traitement dans la console :
Collecte des journaux de conteneur d'un cluster (stdout et fichiers) à l'aide des CRD Kubernetes