TailFile 2025.5.31.15

Bundle

org.apache.nifi | nifi-standard-nar

Description

Affiche la fin d’un fichier ou d’une liste de fichiers via la commande « Tail », en ingérant les données du fichier au fur et à mesure qu’elles y sont écrites. Le fichier doit être textuel. Les données ne sont ingérées que lorsqu’une nouvelle ligne est rencontrée (retour chariot ou caractère de nouvelle ligne ou combinaison). Si le fichier à surveiller est périodiquement « reporté », comme c’est généralement le cas des fichiers journaux, un Rolling Filename Pattern optionnel peut être utilisé pour récupérer les données à partir des fichiers qui ont été reportés, même si le report a eu lieu pendant que NiFi ne fonctionnait pas (à condition que les données existent toujours au redémarrage de NiFi). Il est généralement recommandé de définir le Run Schedule sur quelques secondes, plutôt que d’utiliser la valeur par défaut de 0 seconde, car ce processeur consommera beaucoup de ressources s’il est exécuté avec une planification trop agressive. À l’heure actuelle, ce processeur ne prend pas en charge l’ingestion de fichiers qui ont été compressés lorsqu’ils ont été “reportés”.

Balises

file, log, source, tail, text

Exigences en matière d’entrées

FORBIDDEN

Prend en charge les propriétés dynamiques sensibles

false

Propriétés

Propriété

Description

File Location

Spécifie l’emplacement de l’état, soit local, soit en cluster, afin que l’état puisse être stocké de manière appropriée pour garantir que toutes les données sont consommées sans dupliquer les données lors du redémarrage de l’état NiFi

File to Tail

Chemin du fichier à surveiller dans le cas du mode fichier unique. Si vous utilisez le mode multifichier, expression régulière pour trouver les fichiers à suivre dans le répertoire de base. Dans le cas où la récursivité est définie sur true, l’expression régulière sera utilisée pour faire correspondre le chemin à partir du répertoire de base (voir Détails supplémentaires pour les exemples).

Initial Start Position

Lorsque le processeur commence à surveiller les données, cette propriété spécifie l’endroit où le processeur doit commencer à lire les données. Une fois que les données ont été ingérées à partir d’un fichier, le processeur continue à partir du dernier point à partir duquel il a reçu des données.

Line Start Pattern

Une expression régulière à associer au début d’une ligne de connexion. Si elle est spécifiée, toute ligne correspondant à l’expression, ainsi que toutes les lignes suivantes, seront mises en mémoire tampon jusqu’à ce qu’une autre ligne corresponde à l’expression. Ce faisant, nous évitons de fractionner les messages de plusieurs lignes dans le fichier. Cela suppose que les données soient au format UTF-8.

Max Buffer Size

Lors de l’utilisation du Line Start Pattern, il peut arriver que les données du fichier surveillé ne correspondent jamais à l’expression régulière. Le processeur mettrait alors en mémoire tampon l’ensemble des données du fichier, ce qui pourrait rapidement épuiser le Heap. Pour éviter cela, le processeur ne mettra en mémoire tampon qu’un volume de données limité à cette valeur, quitte à ingérer partiellement les données du fichier.

Post-Rollover Tail Period

Lorsqu’un fichier est reporté, le processeur continue de le surveiller jusqu’à ce qu’il n’ait pas été modifié pendant la durée définie. Cela permet à un autre processus de reporter un fichier, puis de vider les données mises en mémoire tampon. Notez que lorsqu’une valeur est définie pour ce paramètre et que le fichier surveillé est reporté, le nouveau fichier ne sera surveillé qu’une fois que l’ancien n’aura pas été modifié pendant la durée configurée. En outre, pour éviter la duplication des données, cette période doit être plus longue que le plan d’exécution du processeur, et le processeur ne doit pas être arrêté après que le fichier surveillé a été reporté et avant que les données aient été complètement consommées. Sinon, les données pourraient être dupliquées, car le fichier entier pourrait être écrit sous forme de contenu unique dans un seul FlowFile.

Rolling Filename Pattern

Si le fichier à surveiller est « reporté », comme c’est généralement le cas des fichiers journaux, ce modèle de nom de fichier sera utilisé pour identifier les fichiers reportés afin que, si NiFi redémarre et que le fichier a été reporté, il puisse reprendre là où il s’était arrêté. Ce modèle prend en charge les caractères génériques * et ?, il prend également en charge la notation ${filename} pour spécifier un modèle basé sur le nom du fichier (sans extension), et supposera que les fichiers qui ont été transférés se trouvent dans le même répertoire que le fichier en cours de transfert. Le même modèle global sera utilisé pour tous les fichiers.

pre-allocated-buffer-size

Définit la quantité de mémoire préallouée pour chaque fichier surveillé.

reread-on-nul

Si cette option est définie sur “true”, lorsqu’un caractère NUL est lu, le processeur cédera et tentera de relire cette même portion plus tard. (Remarque : le fait de céder peut retarder le traitement d’autres fichiers surveillés par ce processeur, et pas uniquement celui contenant le caractère NUL.) L’objectif de cet indicateur est de permettre aux utilisateurs de gérer les cas où la lecture d’un fichier peut renvoyer des valeurs temporaires NUL. NFS par exemple, peut envoyer le contenu du fichier dans le désordre. Dans ce cas, les pièces manquantes sont temporairement remplacées par des valeurs NUL. CAUTION! Si le fichier contient des valeurs NUL légitimes, l’activation de ce paramètre peut entraîner un blocage du processeur indéfiniment. Pour cette raison, les utilisateurs doivent éviter d’activer cette fonctionnalité dans la mesure du possible et s’efforcer de ne pas placer le fichier cible sur un système de fichiers où les lectures sont peu fiables.

tail-base-directory

Répertoire de base utilisé pour rechercher les fichiers à surveiller. Cette propriété est requise en mode Multifile.

tail-mode

Mode d’utilisation : single file permet de surveiller un seul fichier ; multiple file permet d’en surveiller plusieurs. En mode Multiple, le répertoire de base est requis.

tailfile-lookup-frequency

Utilisé uniquement en mode Multiple files. Il indique la durée minimale pendant laquelle le processeur attendra avant d’annoncer à nouveau les fichiers à surveiller.

tailfile-maximum-age

Utilisé uniquement en mode Multiple files. Spécifie la durée minimale nécessaire pour considérer qu’aucun nouveau message ne sera ajouté à un fichier, en fonction de sa dernière date de modification. Cette valeur ne doit pas être définie trop basse afin d’éviter une duplication des données si de nouveaux messages sont ajoutés à une fréquence faible.

tailfile-recursive-lookup

Lors de l’utilisation du mode Multiple files, cette propriété définit si les fichiers doivent être listés de manière récursive dans le répertoire de base.

Gestion de l’État

Champs d’application

Description

CLUSTER

Stocke l’état indiquant où le fichier surveillé a été interrompu, afin d’éviter toute duplication de données au redémarrage. L’état est stocké localement ou en mode cluster, selon la propriété <File Location>.

LOCAL

Stocke l’état indiquant où le fichier surveillé a été interrompu, afin d’éviter toute duplication de données au redémarrage. L’état est stocké localement ou en mode cluster, selon la propriété <File Location>.

Restrictions

Autorisation requise

Explication

lire le système de fichiers

Fournit à l’opérateur la possibilité de lire n’importe quel fichier auquel NiFi a accès.

Relations

Nom

Description

success

Tous les FlowFiles sont routées vers cette Relation.

Écrit les attributs

Nom

Description

tailfile.original.path

Chemin du fichier d’origine dont provient le FlowFile.