Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Daten mit Agenten vorverarbeiten
Der Agent kann die aus den überwachten Dateien analysierten Datensätze vorverarbeiten, bevor er sie an Ihren Firehose-Stream sendet. Sie können dieses Feature aktivieren, indem Sie Ihrem Dateifluss die Konfigurationseinstellung dataProcessingOptions
hinzufügen. Sie können eine oder mehrere Verarbeitungsoptionen hinzufügen. Diese werden in der angegebenen Reihenfolge ausgeführt.
Der Agent unterstützt die folgenden Verarbeitungsoptionen. Der Agent ist ein Open-Source-Tool, sodass Sie dessen Verarbeitungsoptionen optimieren und erweitern können. Sie können den Agenten von Kinesis Agent
Verarbeitungsoptionen
SINGLELINE
-
Konvertiert einen mehrzeiligen Datensatz in einen einzeiligen Datensatz, indem Zeilenumbruchzeichen sowie vorangestellte und folgende Leerzeichen entfernt werden.
{ "optionName": "SINGLELINE" }
CSVTOJSON
-
Konvertiert einen Datensatz von einem durch Trennzeichen getrennten Format in ein Format. JSON
{ "optionName": "CSVTOJSON", "customFieldNames": [ "
field1
", "field2
",...
], "delimiter": "yourdelimiter
" }customFieldNames
-
[Erforderlich] Die Feldnamen, die als Schlüssel in jedem JSON Schlüssel-Wert-Paar verwendet werden. Wenn Sie beispielsweise
["f1", "f2"]
angeben, wird der Datensatz „v1, v2“ in{"f1":"v1","f2":"v2"}
konvertiert. delimiter
-
Die Zeichenfolge, die als Trennzeichen im Datensatz verwendet wird. Standardmäßig wird ein Komma (,) verwendet.
LOGTOJSON
-
Konvertiert einen Datensatz von einem Protokollformat in ein JSON Format. Folgende Protokollformate werden unterstützt: Apache Common Log, Apache Combined Log, Apache Error Log und RFC3164 Syslog.
{ "optionName": "LOGTOJSON", "logFormat": "
logformat
", "matchPattern": "yourregexpattern
", "customFieldNames": [ "field1
", "field2
",…
] }logFormat
-
[Erforderlich] Das Format des Protokolleintrags. Folgende Werte sind möglich:
-
COMMONAPACHELOG
– Das Apache-Common-Log-Format. Jeder Protokolleintrag weist standardmäßig das folgende Muster auf: „%{host} %{ident} %{authuser} [%{datetime}] \"%{request}\" %{response} %{bytes}
“. -
COMBINEDAPACHELOG
– Das Apache-Combined-Log-Format. Jeder Protokolleintrag weist standardmäßig das folgende Muster auf: „%{host} %{ident} %{authuser} [%{datetime}] \"%{request}\" %{response} %{bytes} %{referrer} %{agent}
“. -
APACHEERRORLOG
– Das Apache-Error-Log-Format. Jeder Protokolleintrag weist standardmäßig das folgende Muster auf: „[%{timestamp}] [%{module}:%{severity}] [pid %{processid}:tid %{threadid}] [client: %{client}] %{message}
“. -
SYSLOG
— Das RFC3164 Syslog-Format. Jeder Protokolleintrag weist standardmäßig das folgende Muster auf: „%{timestamp} %{hostname} %{program}[%{processid}]: %{message}
“.
-
matchPattern
-
Überschreibt das Standardmuster für das angegebene Protokollformat. Verwenden Sie diese Einstellung, um Werte aus Protokolleinträgen zu extrahieren, wenn sie ein benutzerdefiniertes Format verwenden. Wenn Sie
matchPattern
angeben, müssen Sie auchcustomFieldNames
angeben. customFieldNames
-
Die benutzerdefinierten Feldnamen, die als Schlüssel in jedem JSON Schlüssel-Wert-Paar verwendet werden. Mit dieser Einstellung können Sie Feldnamen für Werte definieren, die aus
matchPattern
extrahiert wurden, oder die Standardfeldnamen von vordefinierten Protokollformaten überschreiben.
Beispiel : LOGTOJSON Konfiguration
Hier ist ein Beispiel für eine LOGTOJSON
Konfiguration für einen Apache Common Log-Eintrag, der in ein JSON Format konvertiert wurde:
{ "optionName": "LOGTOJSON", "logFormat": "COMMONAPACHELOG" }
Vor der Konvertierung:
64.242.88.10 - - [07/Mar/2004:16:10:02 -0800] "GET /mailman/listinfo/hsdivision HTTP/1.1" 200 6291
Nach der Konvertierung:
{"host":"64.242.88.10","ident":null,"authuser":null,"datetime":"07/Mar/2004:16:10:02 -0800","request":"GET /mailman/listinfo/hsdivision HTTP/1.1","response":"200","bytes":"6291"}
Beispiel : LOGTOJSON Konfiguration mit benutzerdefinierten Feldern
Im Folgenden ein weiteres Beispiel einer LOGTOJSON
-Konfiguration:
{ "optionName": "LOGTOJSON", "logFormat": "COMMONAPACHELOG", "customFieldNames": ["f1", "f2", "f3", "f4", "f5", "f6", "f7"] }
Mit dieser Konfigurationseinstellung wird derselbe Apache Common Log-Eintrag aus dem vorherigen Beispiel wie folgt in JSON das Format konvertiert:
{"f1":"64.242.88.10","f2":null,"f3":null,"f4":"07/Mar/2004:16:10:02 -0800","f5":"GET /mailman/listinfo/hsdivision HTTP/1.1","f6":"200","f7":"6291"}
Beispiel : Konvertieren eines Apache Common Log-Eintrags
Die folgende Flow-Konfiguration konvertiert einen Apache Common Log-Eintrag in einen einzeiligen Datensatz im JSON Format:
{ "flows": [ { "filePattern": "
/tmp/app.log*
", "deliveryStream": "my-delivery-stream
", "dataProcessingOptions": [ { "optionName": "LOGTOJSON", "logFormat": "COMMONAPACHELOG" } ] } ] }
Beispiel : Konvertieren mehrzeiliger Datensätze
Bei der folgenden Ablaufkonfiguration werden mehrzeilige Datensätze analysiert, deren erste Zeile mit „[SEQUENCE=
“ beginnt. Jeder Datensatz wird in einen einzeiligen Datensatz konvertiert. Anschließend werden Werte aus dem Datensatz basierend auf einem Tabulatortrennzeichen extrahiert. Extrahierte Werte werden bestimmten customFieldNames
Werten zugeordnet, sodass ein einzeiliger Datensatz im Format entsteht. JSON
{ "flows": [ { "filePattern": "
/tmp/app.log*
", "deliveryStream": "my-delivery-stream
", "multiLineStartPattern": "\\[SEQUENCE=
", "dataProcessingOptions": [ { "optionName": "SINGLELINE" }, { "optionName": "CSVTOJSON", "customFieldNames": [ "field1
", "field2
", "field3
" ], "delimiter": "\\t
" } ] } ] }
Beispiel : LOGTOJSON Konfiguration mit Match Pattern
Hier ist ein Beispiel für eine LOGTOJSON
Konfiguration für einen Apache Common Log-Eintrag, der in ein JSON Format konvertiert wurde, wobei das letzte Feld (Byte) weggelassen wurde:
{ "optionName": "LOGTOJSON", "logFormat": "COMMONAPACHELOG", "matchPattern": "^([\\d.]+) (\\S+) (\\S+) \\[([\\w:/]+\\s[+\\-]\\d{4})\\] \"(.+?)\" (\\d{3})", "customFieldNames": ["host", "ident", "authuser", "datetime", "request", "response"] }
Vor der Konvertierung:
123.45.67.89 - - [27/Oct/2000:09:27:09 -0400] "GET /java/javaResources.html HTTP/1.0" 200
Nach der Konvertierung:
{"host":"123.45.67.89","ident":null,"authuser":null,"datetime":"27/Oct/2000:09:27:09 -0400","request":"GET /java/javaResources.html HTTP/1.0","response":"200"}