Tous les produits
Search
Centre de documentation

Simple Log Service:Configurations Logtail (héritées)

Dernière mise à jour :Aug 26, 2026

Une configuration Logtail définit les politiques de collecte des journaux, telles que la source de données et le mode de collecte. Cette rubrique décrit les paramètres d'API hérités.

La CRD AliyunLogConfig héritée n'est plus maintenue. Utilisez AliyunPipelineConfig à la place. CreateLogtailPipelineConfig - Créer une configuration de pipeline Logtail .

Paramètres de base

Parameter

Type

Required

Example

Description

configName

string

Yes

config-sample

Nom de la configuration Logtail. Il doit être unique au sein du projet et ne peut pas être modifié après sa création.

Règles de nommage :

  • 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.

  • Sa longueur doit être comprise entre 2 et 128 caractères.

inputType

string

Yes

file

Type de source de données. Valeurs valides :

  • plugin : Collecte les journaux à l'aide de plug-ins Logtail (par exemple, MySQL Binlog).

  • file : Collecte les journaux à partir de fichiers texte en utilisant un mode fixe (regex complète, délimiteur, etc.).

inputDetail

JSON object

Yes

None

Configuration de la source de données. Paramètres inputDetail.

outputType

string

Yes

LogService

Destination de sortie. Seul LogService est pris en charge.

outputDetail

JSON object

Yes

None

Configuration de la sortie des journaux. Paramètres outputDetail.

logSample

string

No

None

Exemple de journal.

Remarque

L'exemple de journal doit faire moins de 1 500 octets.

Paramètres inputDetail

Paramètres de base

Parameter

Type

Required

Example

Description

filterKey

array

No

["ip"]

Champs de filtre des journaux. Seuls les journaux correspondant aux modèles filterRegex sont collectés.

Remarque

Ce paramètre concerne uniquement la collecte de journaux textuels.

filterRegex

array

No

["^10.*"]

Modèles regex pour filterKey. La longueur du tableau filterRegex doit correspondre à celle de filterKey.

Remarque

Ce paramètre concerne uniquement la collecte de journaux textuels.

shardHashKey

array

No

["__source__"]

Mode d'écriture des données. Par défaut : équilibrage de charge.

  • Mode d'équilibrage de charge (LoadBalance) : Écriture dans n'importe quel shard accessible. Idéal pour les scénarios sans exigences d'ordre.

  • Mode Shard (KeyHash) : Routage des données vers un shard spécifique basé sur le champ Key dans les paramètres URL. Retour à l'équilibrage de charge si non défini. Garantit un ordre strict au sein d'un shard lors de la fusion et du fractionnement. Shards.

Lorsqu'il est configuré, les données sont écrites en mode shard. Le champ __source__ est pris en charge.

enableRawLog

boolean

No

false

Indique s'il faut télécharger les journaux bruts.

  • true : Télécharger les journaux bruts.

  • false (par défaut) : Ne pas télécharger les journaux bruts.

sensitive_keys

array

No

None

Configuration du masquage des données. Paramètres sensitive_keys.

mergeType

string

No

topic

Méthode d'agrégation. Valeurs valides :

  • topic (par défaut) : Agrégation par topic.

  • logstore : Agrégation par Logstore.

delayAlarmBytes

int

No

209715200

Seuil d'alerte pour le retard de collecte. Par défaut : 209715200 (200 Mo).

adjustTimezone

boolean

No

false

Indique s'il faut ajuster les fuseaux horaires des journaux. S'applique uniquement lorsque l'analyse temporelle est configurée (par exemple, lorsque timeFormat est défini).

logTimezone

string

No

GMT+08:00

Décalage du fuseau horaire. Format : GMT+HH:MM (est) ou GMT-HH:MM (ouest). Exemple : GMT+08:00 pour UTC+8.

advanced

JSON object

No

None

Configuration des fonctionnalités avancées. Paramètres advanced.

Paramètres sensitive_keys

  • Paramètres

    Parameter

    Type

    Required

    Example

    Description

    key

    string

    Yes

    content

    Nom du champ de journal.

    type

    string

    Yes

    const

    Méthode de masquage des données. Valeurs valides :

    • const : Remplace le contenu sensible par la valeur du champ const.

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

    regex_begin

    string

    Yes

    'password':'

    Préfixe regex pour localiser le contenu sensible. Utilise la syntaxe RE2.

    regex_content

    string

    Yes

    [^']*

    Regex pour le contenu sensible. Utilise la syntaxe RE2.

    all

    boolean

    Yes

    true

    Indique s'il faut remplacer tout le contenu sensible dans le champ.

    • true (recommandé) : Remplace tout le contenu sensible.

    • false : Remplace uniquement la première correspondance.

    const

    string

    No

    "****"

    Ce paramètre est requis si vous définissez type sur const.

  • Exemple de configuration

    Par exemple, si la valeur du champ content dans un journal est [{'account':'1812213231432969','password':'04a23f38'}, {'account':'1812213685634','password':'123a'}], vous pouvez remplacer la valeur du champ password par **** en définissant sensitive_keys comme suit.

    sensitive_keys = [{"all": true,
    "const": "********",
    "regex_content": "[^']*",
    "regex_begin": "'password':'",
    "type": "const",
    "key": "content"}]                    
  • Exemple de journal

    [{'account':'1812213231432969','password':'********'}, {'account':'1812213685634','password':'********'}]

Paramètres avancés

Paramètre

Type

Obligatoire

Exemple

Description

enable_root_path_collection

boolean

Non

false

Indique s'il est permis de collecter des données depuis les répertoires racine Windows (par exemple, D:\log*).

  • true : Autorisé.

  • false (par défaut) : Non autorisé.

Important
  • Paramètre global. L'activation de cette option dans n'importe quelle configuration Logtail permet à toutes les configurations du serveur de collecter des données depuis les répertoires racine jusqu'au redémarrage de Logtail.

  • Cette fonctionnalité est prise en charge uniquement sur Logtail 1.0.0.22 et versions ultérieures pour Windows.

exactly_once_concurrency

int

Non

1

Active l'écriture ExactlyOnce et définit le nombre d'envois concurrents par fichier (0-512). Annexe : Fonctionnalité d'écriture ExactlyOnce.

  • 0 : Désactive la fonctionnalité d'écriture ExactlyOnce.

  • Autres valeurs : Active l'écriture ExactlyOnce avec la concurrence spécifiée par fichier.

Important
  • Des valeurs plus élevées augmentent la consommation de mémoire et d'espace disque. Définissez ce paramètre en fonction de votre trafic d'écriture local.

  • Logtail effectue une randomisation locale. Même si cette valeur est inférieure au nombre de shards, l'équilibrage de l'écriture est toujours assuré.

  • Prend effet uniquement sur les nouveaux fichiers après la configuration.

  • Cette fonctionnalité est prise en charge uniquement dans Logtail 1.0.21 et versions ultérieures.

enable_log_position_meta

boolean

Non

true

Indique s'il faut ajouter les métadonnées du fichier journal (champs __tag__:__inode__ et __file_offset__).

  • true : Ajoute les métadonnées.

  • false : N'ajoute pas les métadonnées.

Remarque

Cette fonctionnalité est prise en charge uniquement dans Logtail 1.0.21 et versions ultérieures.

specified_year

uint

Non

0

Complète les horodatages des journaux auxquels il manque l'année. Valeurs valides :

  • 0 : Utilise l'année en cours.

  • Une année spécifique (par exemple, 2020) : Utilise l'année spécifiée.

Remarque

Cette fonctionnalité est prise en charge uniquement dans Logtail 1.0.21 et versions ultérieures.

force_multiconfig

boolean

Non

false

Indique s'il est permis à cette configuration de collecter des fichiers déjà correspondants à d'autres configurations. Par défaut : false.

À utiliser pour les scénarios de multi-écriture où un fichier est collecté par deux configurations vers différents Logstores.

raw_log_tag

string

Non

__raw__

Nom du champ pour stocker les journaux bruts. Par défaut : __raw__.

blacklist

object

Non

Aucun

Configuration de la liste noire de collecte. Paramètres de la liste noire.

tail_size_kb

int

Non

1024

Taille de collecte initiale pour les nouveaux fichiers, déterminant la position de lecture de départ. Par défaut : 1024 Ko.

  • Fichiers inférieurs à 1024 Ko : la collecte commence depuis le début.

  • Fichiers supérieurs à 1024 Ko : la collecte commence 1024 Ko avant la fin.

Plage : 0-10485760 Ko.

batch_send_interval

int

Non

3

Intervalle d'envoi agrégé en secondes. Par défaut : 3.

max_rotate_queue_size

int

Non

20

Longueur de la file d'attente de rotation pour un seul fichier. Par défaut : 20.

enable_precise_timestamp

boolean

Non

false

Indique s'il faut extraire l'heure avec une haute précision. Par défaut : false.

Lorsque cette option est activée, Logtail analyse le champ temporel en un horodatage au niveau de la milliseconde et le stocke dans le champ precise_timestamp_key.

Remarque
  • L'heure système doit être désactivée dans la configuration de collecte Logtail.

  • Cette fonctionnalité est prise en charge uniquement dans Logtail 1.0.32 et versions ultérieures.

precise_timestamp_key

string

Non

"precise_timestamp"

Champ pour stocker l'horodatage de haute précision. Par défaut : precise_timestamp.

precise_timestamp_unit

string

Non

"ms"

Unité de l'horodatage de haute précision. Par défaut : ms. Valeurs valides : ms (milliseconde), us (microseconde), ns (nanoseconde).

Le tableau suivant décrit les paramètres de blacklist.

Paramètre

Type

Obligatoire

Exemple

Description

dir_blacklist

array

Non

["/home/admin/dir1", "/home/admin/dir2*"]

Liste noire des répertoires (chemins absolus). Prend en charge les caractères génériques astérisque (*).

Par exemple, si vous configurez le chemin comme /home/admin/dir1, tout le contenu du répertoire /home/admin/dir1 est ignoré lors de la collecte.

filename_blacklist

array

Non

["app*.log", "password"]

Liste noire des noms de fichiers. Les fichiers correspondants sont exclus de tous les répertoires. Prend en charge les caractères génériques astérisque (*).

filepath_blacklist

array

Non

["/home/admin/private*.log"]

Liste noire des chemins de fichiers (chemins absolus). Prend en charge les caractères génériques astérisque (*).

Si vous configurez le chemin comme /home/admin/private*.log, tous les fichiers du répertoire /home/admin/ qui commencent par « private » et se terminent par « .log » sont ignorés lors de la collecte.

Configurations spécifiques aux journaux textuels

Paramètres de base

Parameter

Type

Required

Example

Description

logType

string

Yes

common_reg_log

Mode de collecte des journaux. Valeurs valides :

  • json_log : mode JSON.

  • common_reg_log : mode regex complet.

  • plugin : mode plug-in.

  • delimiter_log : mode délimiteur.

logPath

string

Yes

/var/log/http/

Chemin du répertoire des fichiers journaux.

filePattern

string

Yes

access*.log

Modèle de nom de fichier journal.

topicFormat

string

Yes

none

Méthode de génération des topics. Valeurs valides :

  • none : ne génère pas de topics de journal.

  • default : utilise le chemin du fichier journal comme topic de journal.

  • group_topic : utilise le topic du groupe de machines comme topic de journal.

  • Regex du chemin d'accès au fichier : utilise une partie du chemin du fichier journal comme topic. Exemple : /var/log/(.*).log.

Topics de journal.

timeFormat

string

No

%Y/%m/%d %H:%M:%S

Format de l'heure du journal. Formats d'heure.

preserve

boolean

No

true

Comportement en cas d'expiration du délai pour les fichiers journaux. Valeurs valides :

  • true (par défaut) : n'expire jamais.

  • false : expire après 30 minutes d'inactivité. Le fichier n'est plus surveillé.

preserveDepth

integer

No

1

Profondeur maximale du répertoire pour l'expiration lorsque preserve est défini sur false. Plage : 1-3.

fileEncoding

string

No

utf8

Encodage du fichier journal. Valeurs valides : utf8, gbk.

discardUnmatch

boolean

No

true

Indique s'il faut ignorer les journaux qui ne correspondent pas. Valeurs valides :

  • true : ignore les journaux qui ne correspondent pas.

  • false : n'ignore pas les journaux qui ne correspondent pas.

maxDepth

int

No

100

Profondeur maximale du répertoire de journaux surveillé (0-1 000). Une valeur de 0 signifie que seul le répertoire actuel est surveillé.

delaySkipBytes

int

No

0

Seuil pour l'ignorance des données retardées. Valeurs valides :

  • 0 (par défaut) : n'ignore pas les données.

  • Autres valeurs : si le retard de collecte dépasse cette valeur (par exemple, 1 024 Ko), les données retardées sont ignorées.

dockerFile

boolean

No

false

Indique si le fichier cible se trouve à l'intérieur d'un conteneur. Par défaut : false.

dockerIncludeLabel

JSON object

No

None

Liste d'autorisation des libellés de conteneur. Vide par défaut (collecte depuis tous les conteneurs). LabelKey est obligatoire ; LabelValue est facultatif.

  • Si LabelValue est vide, tous les conteneurs dont un libellé contient LabelKey correspondent.

  • Si LabelValue n'est pas vide, seuls les conteneurs dont le libellé est LabelKey=LabelValue correspondent.

    Par défaut, LabelValue est comparé sous forme de chaîne. La correspondance n'a lieu que si LabelValue est identique à la valeur du libellé du conteneur. Si la valeur commence par ^ et se termine par $, elle est traitée comme une expression régulière. Par exemple, définissez LabelKey sur io.kubernetes.container.name et LabelValue sur ^(nginx|cube)$ pour faire correspondre les conteneurs nommés nginx ou cube.

Remarque
  • Ne définissez pas plusieurs fois le même LabelKey. En cas de doublons, un seul sera pris en compte.

  • Plusieurs entrées de liste d'autorisation ont une relation OU. Un conteneur correspond si son libellé satisfait l'une des entrées de la liste d'autorisation.

dockerExcludeLabel

JSON object

No

None

Liste de blocage des libellés de conteneur. Vide par défaut (aucun conteneur exclu). LabelKey est obligatoire ; LabelValue est facultatif.

  • Si LabelValue est vide, tous les conteneurs dont un libellé contient LabelKey sont exclus.

  • Si LabelValue n'est pas vide, seuls les conteneurs dont le libellé est LabelKey=LabelValue sont exclus.

    Par défaut, LabelValue est comparé sous forme de chaîne. La correspondance n'a lieu que si LabelValue est identique à la valeur du libellé du conteneur. Si la valeur commence par ^ et se termine par $, elle est traitée comme une expression régulière. Par exemple, définissez LabelKey sur io.kubernetes.container.name et LabelValue sur ^(nginx|cube)$ pour faire correspondre les conteneurs nommés nginx ou cube.

Remarque
  • Ne définissez pas plusieurs fois le même LabelKey. En cas de doublons, un seul sera pris en compte.

  • Plusieurs entrées de liste de blocage ont une relation OU. Un conteneur est exclu si son libellé satisfait l'une des paires clé-valeur de la liste de blocage.

dockerIncludeEnv

JSON object

No

None

Liste d'autorisation des variables d'environnement. Vide par défaut (collecte depuis tous les conteneurs). EnvKey est obligatoire ; EnvValue est facultatif.

  • Si EnvValue est vide, tous les conteneurs dont une variable d'environnement contient EnvKey correspondent.

  • Si EnvValue n'est pas vide, seuls les conteneurs dont la variable d'environnement est EnvKey=EnvValue correspondent.

    Par défaut, EnvValue est comparé sous forme de chaîne. La correspondance n'a lieu que si EnvValue est identique à la valeur de la variable d'environnement. Si la valeur commence par ^ et se termine par $, elle est traitée comme une expression régulière. Par exemple, définissez EnvKey sur NGINX_SERVICE_PORT et EnvValue sur ^(80|6379)$ pour faire correspondre les conteneurs avec un port de service 80 ou 6379.

Remarque

Plusieurs entrées de liste d'autorisation ont une relation OU. Un conteneur correspond si ses variables d'environnement satisfont l'une des entrées de la liste d'autorisation.

dockerExcludeEnv

JSON object

No

None

Liste de blocage des variables d'environnement. Vide par défaut (aucun conteneur exclu). EnvKey est obligatoire ; EnvValue est facultatif.

  • Si EnvValue est vide, tous les conteneurs dont une variable d'environnement contient EnvKey sont exclus.

  • Si EnvValue n'est pas vide, seuls les conteneurs dont la variable d'environnement est EnvKey=EnvValue sont exclus.

    Par défaut, EnvValue est comparé sous forme de chaîne. La correspondance n'a lieu que si EnvValue est identique à la valeur de la variable d'environnement. Si la valeur commence par ^ et se termine par $, elle est traitée comme une expression régulière. Par exemple, définissez EnvKey sur NGINX_SERVICE_PORT et EnvValue sur ^(80|6379)$ pour faire correspondre les conteneurs avec un port de service 80 ou 6379.

Remarque

Plusieurs entrées de liste de blocage ont une relation OU. Un conteneur est exclu si ses variables d'environnement satisfont l'une des paires clé-valeur.

Paramètres du mode regex complet et du mode simple

  • Paramètres

    Parameter

    Type

    Required

    Example

    Description

    key

    array

    Yes

    ["content"]

    Noms des champs pour le contenu brut du journal.

    logBeginRegex

    string

    No

    .*

    Expression régulière pour le début d'une entrée de journal. Une seule expression régulière est prise en charge. Pour faire correspondre plusieurs formats de début de ligne, combinez les modèles en une seule expression régulière à l'aide de l'opérateur barre verticale (

    ).

    regex

    string

    No

    (.*)

    Expression régulière pour l'extraction des champs.

  • Exemple de configuration

    {
        "configName": "logConfigName", 
        "outputType": "LogService", 
        "inputType": "file", 
        "inputDetail": {
            "logPath": "/logPath", 
            "filePattern": "*", 
            "logType": "common_reg_log", 
            "topicFormat": "default", 
            "discardUnmatch": false, 
            "enableRawLog": true, 
            "fileEncoding": "utf8", 
            "maxDepth": 10, 
            "key": [
                "content"
            ], 
            "logBeginRegex": ".*", 
            "regex": "(.*)"
        }, 
        "outputDetail": {
            "projectName": "test-project", 
            "logstoreName": "test-logstore"
        }
    }

Paramètres du mode JSON

Parameter

Type

Required

Example

Description

timeKey

string

No

time

Nom de la clé du champ d'heure.

Paramètres du mode délimiteur

  • Paramètres

    Parameter

    Type

    Required

    Example

    Description

    separator

    string

    No

    ,

    Choisissez le séparateur correspondant au format de votre journal. Collecter des journaux en mode délimiteur.

    quote

    string

    Yes

    \

    Caractère de guillemet pour encapsuler les champs contenant le séparateur. Le contenu entre guillemets est analysé comme un seul champ. Collecter des journaux en mode délimiteur.

    key

    array

    Yes

    [ "ip", "time"]

    Noms des champs pour le contenu brut du journal.

    timeKey

    string

    Yes

    time

    Champ de la liste key à utiliser comme champ d'heure.

    autoExtend

    boolean

    No

    true

    Indique s'il faut charger les données lorsque le nombre de champs divisés est inférieur au nombre de clés configurées.

    Par exemple, un journal est 11|22|33|44|55, le séparateur est une barre verticale (|) et le contenu du journal est analysé en 11, 22, 33, 44 et 55. Les clés sont respectivement définies sur A, B, C, D et E.

    • true : lors de la collecte du journal 11|22|33|55, 55 est chargé dans Simple Log Service comme valeur pour la clé D.

    • false : lors de la collecte du journal 11|22|33|55, cette entrée de journal est ignorée car le nombre de champs ne correspond pas au nombre de clés.

  • Exemple de configuration

    {
        "configName": "logConfigName", 
        "logSample": "testlog", 
        "inputType": "file", 
        "outputType": "LogService", 
        "inputDetail": {
            "logPath": "/logPath", 
            "filePattern": "*", 
            "logType": "delimiter_log", 
            "topicFormat": "default", 
            "discardUnmatch": true, 
            "enableRawLog": true, 
            "fileEncoding": "utf8", 
            "maxDepth": 999, 
            "separator": ",", 
            "quote": "\"", 
            "key": [
                "ip", 
                "time"
            ], 
            "autoExtend": true
        }, 
        "outputDetail": {
            "projectName": "test-project", 
            "logstoreName": "test-logstore"
        }
    }

Paramètres du mode plug-in

  • Paramètres

    Paramètres pour la collecte de journaux via le plug-in Logtail.

    Parameter

    Type

    Required

    Example

    Description

    plugin

    JSON object

    Yes

    None

    Obligatoire pour la collecte de journaux basée sur les plug-ins. Utiliser les plug-ins Logtail pour collecter des données.

  • Exemple de configuration

    {
        "configName": "logConfigName", 
        "outputType": "LogService", 
        "inputType": "plugin",
        "inputDetail": {
            "plugin": {
                "inputs": [
                    {
                        "detail": {
                            "ExcludeEnv": null, 
                            "ExcludeLabel": null, 
                            "IncludeEnv": null, 
                            "IncludeLabel": null, 
                            "Stderr": true, 
                            "Stdout": true
                        }, 
                        "type": "service_docker_stdout"
                    }
                ]
            }
        }, 
        "outputDetail": {
            "projectName": "test-project", 
            "logstoreName": "test-logstore"
        }
    }

Paramètres outputDetail

Paramètres du projet de destination et du Logstore.

Parameter

Type

Required

Example

Description

projectName

string

Yes

my-project

Nom du projet. Doit correspondre au projet de la requête.

logstoreName

string

Yes

my-logstore

Nom du Logstore.

Annexe : Fonctionnalité d'écriture ExactlyOnce

Lorsqu'elle est activée, Logtail enregistre des points de contrôle au niveau des fichiers sur le disque et utilise les numéros de séquence incrémentiels SLS pour éviter les écritures en double. Après des erreurs de processus ou des redémarrages, les points de contrôle déterminent l'étendue du retraitement par fichier. Cela augmente la charge d'écriture sur le disque. Limites :

  • Les points de contrôle sont stockés sur le disque local. Si le disque est plein ou corrompu, la récupération peut échouer.

  • Les points de contrôle enregistrent uniquement les métadonnées des fichiers. Si le fichier est supprimé ou modifié, la récupération peut être impossible.

  • ExactlyOnce dépend des numéros de séquence d'écriture dans SLS. Chaque shard prend en charge un maximum de 10 000 enregistrements. Si ce seuil est dépassé, les anciens enregistrements sont remplacés. Pour garantir la fiabilité, maintenez le produit Nombre de fichiers actifs × Nombre d'instances Logtail par Logstore en dessous de 9 500.

    • Fichiers actifs : fichiers en cours de lecture et d'envoi. Les fichiers ayant fait l'objet d'une rotation portant le même nom logique comptent comme un seul fichier actif.

    • Instances Logtail : nombre de processus Logtail. Généralement un par serveur.

Par défaut, Logtail n'appelle pas sync pour les écritures de points de contrôle. Si le serveur redémarre avant que les données mises en tampon n'atteignent le disque, les points de contrôle peuvent être perdus. Pour activer les écritures synchrones, ajoutez "enable_checkpoint_sync_write": true, au fichier de configuration de démarrage de Logtail (/usr/local/ilogtail/ilogtail_config.json). Définir les paramètres de démarrage de Logtail.