TailFile 2025.5.31.15¶
Bundle¶
org.apache.nifi | nifi-standard-nar
Beschreibung¶
„Hängt“ eine Datei oder eine Liste von Dateien an und nimmt Daten aus der Datei auf, während diese in die Datei geschrieben werden. Es wird erwartet, dass die Datei in Textform vorliegt. Daten werden nur dann erfasst, wenn eine neue Zeile erreicht wird (Zeilenumbruch oder Zeilenvorschubzeichen oder eine Kombination davon). Wenn die zu überwachende Datei regelmäßig „rotiert“ wird, wie dies bei Protokolldateien üblich ist, kann ein optionales Rolling Filename Pattern verwendet werden, um Daten aus Dateien abzurufen, die rotiert wurden. Dies funktioniert selbst dann, wenn die Rotation stattfand, während NiFi nicht lief (vorausgesetzt, dass die Daten beim Neustart von NiFinoch vorhanden sind). Es ist generell ratsam, den Ausführungszeitplan auf einige Sekunden einzustellen, anstatt den Standardwert von 0 Sekunden beizubehalten, da dieser Prozessor bei einer sehr aggressiven Planung viele Ressourcen verbraucht. Zur Zeit unterstützt dieser Prozessor nicht die Aufnahme von Dateien, die bei der „Rotation“ komprimiert wurden.
Eingabeanforderung¶
FORBIDDEN
Unterstützt sensible dynamische Eigenschaften¶
false
Eigenschaften¶
Eigenschaft |
Beschreibung |
---|---|
Speicherort der Datei |
Gibt an, wo sich der Status befindet (lokal oder im Cluster), damit er ordnungsgemäß gespeichert werden kann, um sicherzustellen, dass alle Daten beim Neustart von NiFi ohne Duplikate verarbeitet werden. |
Zu überwachende Datei |
Pfad der Datei, die im Einzeldateimodus überwacht („getailed“) werden soll. Wenn Sie den Mehrdateienmodus verwenden, geben Sie einen regulären Ausdruck ein, um zu überwachende Dateien im Basisverzeichnis zu finden. Wenn die Rekursivität auf „true“ gesetzt ist, wird der reguläre Ausdruck verwendet, um den Pfad ausgehend vom Basisverzeichnis abzugleichen (weitere Details und Beispiele finden Sie unten). |
Ursprüngliche Startposition |
Wenn der Prozessor erstmals beginnt, Daten zu überwachen, gibt diese Eigenschaft an, wo der Prozessor mit dem Lesen der Daten beginnen soll. Sobald Daten aus einer Datei aufgenommen wurden, setzt der Prozessor die Verarbeitung an der Stelle fort, an der er zuletzt Daten empfangen hat. |
Zeilenanfangsmuster |
Ein regulärer Ausdruck, der mit dem Anfang einer Protokollzeile übereinstimmt. Wenn angegeben, werden alle Zeilen, die dem Ausdruck entsprechen, sowie alle folgenden Zeilen gepuffert, bis eine andere Zeile dem Ausdruck entspricht. Auf diese Weise wird vermieden, dass mehrzeilige Meldungen in der Datei aufgespalten werden. Dabei wird davon ausgegangen, dass die Daten im UTF-8-Format vorliegen. |
Maximale Puffergröße |
Wenn Sie das Zeilenanfangsmuster verwenden, kann es vorkommen, dass die Daten in der zu überprüfenden Datei nie mit dem regulären Ausdruck übereinstimmen. Dies würde dazu führen, dass der Prozessor alle Daten aus der überwachten Datei puffert, wodurch der Heap schnell erschöpft sein kann. Um dies zu vermeiden, puffert der Prozessor nur bis zu dieser Datenmenge, bevor er den Puffer leert, auch wenn dies bedeutet, dass nur Teilinformationen aus der Datei aufgenommen werden. |
Überwachungszeitraum nach Rotation |
Wenn eine Datei rotiert wird, überwacht der Prozessor die rotierte Datei so lange, bis sie für den definierten Zeitraum nicht mehr geändert wurde. Dadurch kann ein anderer Prozess eine Datei übertragen und anschließend alle gepufferten Daten löschen. Wenn dieser Wert gesetzt ist und die überwachte Datei rotiert, beginnt das System erst dann mit der Überwachung der neuen Datei, wenn die alte Datei über den festgelegten Zeitraum hinweg nicht mehr geändert wurde. Um eine Duplizierung von Daten zu vermeiden, muss dieser Zeitraum länger sein als der Ausführungszeitplan des Prozessors. Außerdem darf der Prozessor nicht gestoppt werden, nachdem die überwacht Datei rotiert wurde und bevor die Daten vollständig verarbeitet wurden. Andernfalls kann es zu einer Duplizierung der Daten kommen, Andernfalls können die Daten doppelt gespeichert werden, da die gesamte Datei als Inhalt eines einzigen FlowFile geschrieben wird. |
Muster für rollierende Dateinamen |
Wenn die zu überwachende Datei rotiert wird, wie dies bei Protokolldateien der Fall ist, wird dieses Dateinamensmuster verwendet, um Dateien zu identifizieren, die rotiert wurden, sodass bei einem Neustart von NiFi, bei dem die Datei rotiert wurde, an der Stelle weitergemacht werden kann, an der sie unterbrochen wurde. Dieses Muster unterstützt die Platzhalter * und ?, es unterstützt auch die Notation ${filename}, um ein Muster auf der Grundlage des Dateinamens (ohne Erweiterung) anzugeben, und geht davon aus, dass sich die Dateien, die rotiert wurden, im selben Verzeichnis befinden wie die überwachte Datei. Das gleiche Glob-Muster wird für alle Dateien verwendet. |
pre-allocated-buffer-size |
Legt die Speichermenge fest, die für jede überwachteDatei vorab zugewiesen wird. |
reread-on-nul |
Wenn diese Option auf „true“ gesetzt ist, gibt der Prozessor bei einem NUL-Zeichen die Ausführung ab und versucht später erneut, denselben Teil zu lesen. (Hinweis: Durch das Zurückgeben kann die Verarbeitung anderer Dateien, die von diesem Prozessor verfolgt werden, verzögert werden, nicht nur die mit dem NUL-Zeichen.) Der Zweck dieses Flags ist es, den Benutzern die Möglichkeit zu geben, Fälle zu behandeln, in denen das Lesen einer Datei temporäre NUL-Werte zurückgeben kann. NFS kann zum Beispiel den Inhalt der Datei durcheinander bringen. In diesem Fall werden die fehlenden Teile vorübergehend durch die NUL-Werte ersetzt. CAUTION! Wenn die Datei gültige NUL-Werte enthält, führt das Setzen dieses Flags dazu, dass dieser Prozessor unbegrenzt hängen bleibt. Aus diesem Grund sollten Benutzer diese Funktion nach Möglichkeit nicht verwenden und versuchen, die Zieldatei nicht auf einem Dateisystem zu speichern, auf dem Lesevorgänge unzuverlässig sind. |
tail-base-Verzeichnis |
Basisverzeichnis, das für die Suche nach zu überwachenden Dateien verwendet wird. Diese Eigenschaft ist erforderlich, wenn Sie den Multifile-Modus verwenden. |
tail-mode |
Verwendungsmodus: Eine einzelne Datei wird nur eine Datei verfolgen, mehrere Dateien suchen nach einer Liste von Dateien. Im Mehrfachmodus ist das Basisverzeichnis erforderlich. |
tailfile-lookup-frequency |
Wird nur im Mehrdateienmodus verwendet. Sie gibt die Mindestdauer an, die der Prozessor wartet, bevor er die Dateien erneut auflistet. |
tailfile-maximum-age |
Wird nur im Mehrdateienmodus verwendet. Gibt die notwendige Mindestdauer an, um zu gewährleisten, dass keine neuen Meldungen an eine Datei angehängt werden, die das Datum der letzten Änderung betrifft. Dieser Wert sollte nicht zu niedrig angesetzt werden, um eine Duplizierung von Daten zu vermeiden, falls neue Meldung mit einer geringeren Häufigkeit angehängt werden. |
tailfile-recursive-lookup |
Im Modus „Mehrere Dateien“ legt diese Eigenschaft fest, ob Dateien im Basisverzeichnis rekursiv aufgelistet werden sollen oder nicht. |
Statusmanagement¶
Bereiche |
Beschreibung |
---|---|
CLUSTER |
Speichert, an welcher Stelle in der Tailed-Datei die Wiedergabe unterbrochen wurde, damit beim Neustart keine Daten dupliziert werden müssen. Der Status wird je nach der Eigenschaft <File Location> entweder lokal oder geclustert gespeichert. |
LOCAL |
Speichert, an welcher Stelle in der Tailed-Datei die Wiedergabe unterbrochen wurde, damit beim Neustart keine Daten dupliziert werden müssen. Der Status wird je nach der Eigenschaft <File Location> entweder lokal oder geclustert gespeichert. |
Einschränkungen¶
Erforderliche Berechtigung |
Erläuterung |
---|---|
read filesystem |
Bietet dem Bediener die Möglichkeit, aus jeder Datei zu lesen, auf die er NiFi Zugriff hat. |
Beziehungen¶
Name |
Beschreibung |
---|---|
success |
Alle FlowFiles werden an diese Beziehung weitergeleitet. |
Schreibt Attribute¶
Name |
Beschreibung |
---|---|
tailfile.original.path |
Pfad der Originaldatei, aus der das FlowFile stammt. |