Un plug-in de filtrage des données détermine les journaux à collecter en fonction de conditions spécifiées.
Présentation du plug-in de filtrage des données
Log Service propose plusieurs plug-ins de filtrage des données. Choisissez celui qui correspond le mieux à vos besoins.
|
Nom du plug-in |
Type |
Description |
|
Filtering processor |
intégré |
Collecte uniquement les journaux dont la valeur du champ correspond exactement à un modèle de liste d'autorisation spécifié. |
|
filter_regex |
personnalisé |
Prend en charge les modes de filtrage suivants :
|
Point d'entrée
Pour utiliser un plug-in Logtail afin de traiter les journaux, ajoutez-le lors de la création ou de la modification d'une configuration Logtail. Pour plus d'informations, consultez la rubrique Présentation.
Différences entre les plug-ins intégrés et personnalisés
Plug-ins intégrés : implémentés en C++ pour des performances élevées.
Plug-ins personnalisés : implémentés en Go pour offrir flexibilité et un écosystème riche. Si vos journaux de service sont trop complexes pour les plug-ins intégrés, envisagez d'utiliser un plug-in personnalisé.
-
Limitations de performance des plug-ins personnalisés
L'utilisation d'un plug-in personnalisé pour traiter les journaux consomme davantage de ressources LoongCollector, principalement du CPU. Si nécessaire, vous pouvez utiliser la gestion de la configuration pour ajuster les paramètres de LoongCollector.
Si le taux de génération des données brutes dépasse 5 Mo/s, évitez d'utiliser des combinaisons de plug-ins complexes. Privilégiez l'utilisation d'un plug-in personnalisé pour un traitement simple, suivi d'une transformation des données pour un traitement avancé.
-
Limitations de la collecte des journaux
Les plug-ins personnalisés traitent les journaux textuels en mode ligne et stockent les métadonnées au niveau du fichier, telles que
__tag__:__path__et__topic__, dans chaque entrée de journal.-
L'ajout d'un plug-in personnalisé affecte les fonctionnalités liées aux tags :
La requête contextuelle et la fonctionnalité LiveTail ne sont pas disponibles. Pour utiliser ces fonctionnalités, vous devez ajouter une configuration d'agrégateurs.
Le champ
__topic__est renommé en__log_topic__. Si vous ajoutez une configuration d'agrégateurs, les champs__topic__et__log_topic__seront tous deux présents dans les journaux. Si vous n'avez pas besoin du champ__log_topic__, vous pouvez utiliser le plug-in processor_drop pour le supprimer.Les champs tels que
__tag__:__path__ne disposent plus d'index de champ intégré. Vous devez créer un index de champ pour eux.
Plug-in de filtre natif
Le plug-in de filtre natif filtre les journaux en fonction de leurs valeurs de champ.
Configuration
|
Paramètre |
Description |
|
Whitelist |
Définissez une liste d'autorisation pour collecter uniquement les journaux répondant à des conditions spécifiques. Vous devez spécifier le nom du champ cible et une expression régulière pour le filtrage. L'expression régulière doit correspondre à la chaîne entière. Les correspondances partielles ne sont pas prises en charge. Pour plus de détails sur la rédaction d'une expression régulière, consultez le Tutoriel sur les expressions régulières. Plusieurs conditions dans la liste d'autorisation sont jointes par un ET logique. Voici quelques exemples :
|
Plug-ins de filtrage des journaux (avancé)
Utilisez le plug-in processor_filter_regex ou le plug-in processor_filter_key_regex pour filtrer les journaux. Cette rubrique décrit les paramètres et fournit des exemples de configuration pour chaque plug-in.
Limitations
La configuration basée sur un formulaire est disponible uniquement pour les journaux textuels et la sortie standard des conteneurs. Pour toutes les autres sources, vous devez utiliser la configuration basée sur JSON.
-
Le moteur d'expressions régulières Go est basé sur RE2 et présente les limitations suivantes par rapport au moteur PCRE :
-
Différences de syntaxe dans les groupes de capture nommés
Go utilise la syntaxe
(?P<name>...), tandis que PCRE utilise(?<name>...). -
Modèles d'expressions régulières non pris en charge
Lookaround :
(?=...),(?!...),(?<=...)et(?<!...).Expressions conditionnelles :
(?(condition)true|false).Correspondance récursive :
(?R)et(?0).Références de sous-routines :
(?&name)et(?P>name).Groupes atomiques :
(?>...).
Lorsque vous déboguez des expressions régulières avec des outils tels que Regex101, évitez d'utiliser les modèles non pris en charge listés ci-dessus pour prévenir les échecs de traitement.
-
processor_filter_regex (Filtrer par valeur)
processor_filter_key_regex (Filtrer par clé)
Références
-
Configurer un pipeline Logtail à l'aide de l'API :
-
Configurer un plug-in de processeur dans la console :
Collecter les journaux de conteneur (stdout/fichier) d'un cluster à l'aide d'un CRD Kubernetes