Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Preelabora i dati con gli agenti
L'agente può preelaborare i record analizzati dai file monitorati prima di inviarli allo stream Firehose. È possibile abilitare questa funzionalità aggiungendo le impostazioni di configurazione dataProcessingOptions
al flusso di file. Si possono aggiungere una o più opzioni di elaborazione, che verranno eseguite nell'ordine specificato.
L'agente supporta le seguenti opzioni di elaborazione. Poiché l'agente è open source, è possibile sviluppare ulteriormente e ampliare le opzioni di elaborazione. Puoi scaricare l'agente da Kinesis Agent
Opzioni di elaborazione
SINGLELINE
-
Converte un record a più righe in un record a riga singola rimuovendo i caratteri di nuova riga, gli spazi iniziali e finali.
{ "optionName": "SINGLELINE" }
CSVTOJSON
-
Converte un record dal formato separato da delimitatori al formato. JSON
{ "optionName": "CSVTOJSON", "customFieldNames": [ "
field1
", "field2
",...
], "delimiter": "yourdelimiter
" }customFieldNames
-
[Obbligatorio] I nomi dei campi usati come chiavi in ogni JSON coppia chiave-valore. Ad esempio, se specifichi
["f1", "f2"]
, il record "v1, v2" viene convertito in{"f1":"v1","f2":"v2"}
. delimiter
-
La stringa utilizzata come delimitatore nel record. L'impostazione predefinita è una virgola (,).
LOGTOJSON
-
Converte un record da un formato di registro a un JSON altro. I formati di log supportati sono Apache Common Log, Apache Combined Log, Apache Error Log e RFC3164 Syslog.
{ "optionName": "LOGTOJSON", "logFormat": "
logformat
", "matchPattern": "yourregexpattern
", "customFieldNames": [ "field1
", "field2
",…
] }logFormat
-
[Obbligatorio] Il formato di inserimento dei log. I seguenti sono i valori possibili:
-
COMMONAPACHELOG
- Il formato Apache Common Log. Ogni voce di log ha il seguente modello come impostazione predefinita: "%{host} %{ident} %{authuser} [%{datetime}] \"%{request}\" %{response} %{bytes}
". -
COMBINEDAPACHELOG
: il formato Apache Combined Log. Ogni voce di log ha il seguente modello come impostazione predefinita: "%{host} %{ident} %{authuser} [%{datetime}] \"%{request}\" %{response} %{bytes} %{referrer} %{agent}
". -
APACHEERRORLOG
: il formato Apache Error Log. Ogni voce di log ha il seguente modello come impostazione predefinita: "[%{timestamp}] [%{module}:%{severity}] [pid %{processid}:tid %{threadid}] [client: %{client}] %{message}
". -
SYSLOG
— Il formato RFC3164 Syslog. Ogni voce di log ha il seguente modello come impostazione predefinita: "%{timestamp} %{hostname} %{program}[%{processid}]: %{message}
".
-
matchPattern
-
Ignora il modello predefinito per il formato di log specificato. Utilizza questa impostazione per estrarre valori dalle voci di log se utilizzano un formato personalizzato. Se si specifica
matchPattern
, è necessario specificare anchecustomFieldNames
. customFieldNames
-
I nomi dei campi personalizzati utilizzati come chiavi in ogni coppia JSON chiave-valore. Puoi utilizzare questa impostazione per definire i nomi dei campi per i valori estratti da
matchPattern
oppure sovrascrivere i nomi dei campi predefiniti dei formati di log predefiniti.
Esempio : LOGTOJSON Configurazione
Ecco un esempio di LOGTOJSON
configurazione per una voce di Apache Common Log convertita in JSON formato:
{ "optionName": "LOGTOJSON", "logFormat": "COMMONAPACHELOG" }
Prima della conversione:
64.242.88.10 - - [07/Mar/2004:16:10:02 -0800] "GET /mailman/listinfo/hsdivision HTTP/1.1" 200 6291
Dopo la conversione:
{"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"}
Esempio : LOGTOJSON Configurazione con campi personalizzati
Ecco un altro esempio di configurazione LOGTOJSON
:
{ "optionName": "LOGTOJSON", "logFormat": "COMMONAPACHELOG", "customFieldNames": ["f1", "f2", "f3", "f4", "f5", "f6", "f7"] }
Con questa impostazione di configurazione, la stessa voce di Apache Common Log dell'esempio precedente viene convertita nel JSON formato seguente:
{"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"}
Esempio : convertire la voce Apache Common Log
La seguente configurazione di flusso converte una voce di Apache Common Log in un record a riga singola nel formato: JSON
{ "flows": [ { "filePattern": "
/tmp/app.log*
", "deliveryStream": "my-delivery-stream
", "dataProcessingOptions": [ { "optionName": "LOGTOJSON", "logFormat": "COMMONAPACHELOG" } ] } ] }
Esempio : convertire record a più righe
La seguente configurazione del flusso analizza i record a più righe la cui prima riga inizia con "[SEQUENCE=
". Ogni record viene convertito in un record a riga singola. Quindi, i valori vengono estratti dal record in base a un delimitatore di schede. I valori estratti vengono mappati su customFieldNames
valori specificati per formare un record a riga singola in formato. JSON
{ "flows": [ { "filePattern": "
/tmp/app.log*
", "deliveryStream": "my-delivery-stream
", "multiLineStartPattern": "\\[SEQUENCE=
", "dataProcessingOptions": [ { "optionName": "SINGLELINE" }, { "optionName": "CSVTOJSON", "customFieldNames": [ "field1
", "field2
", "field3
" ], "delimiter": "\\t
" } ] } ] }
Esempio : LOGTOJSON Configurazione con Match Pattern
Ecco un esempio di LOGTOJSON
configurazione per una voce di Apache Common Log convertita in JSON formato, con l'ultimo campo (byte) omesso:
{ "optionName": "LOGTOJSON", "logFormat": "COMMONAPACHELOG", "matchPattern": "^([\\d.]+) (\\S+) (\\S+) \\[([\\w:/]+\\s[+\\-]\\d{4})\\] \"(.+?)\" (\\d{3})", "customFieldNames": ["host", "ident", "authuser", "datetime", "request", "response"] }
Prima della conversione:
123.45.67.89 - - [27/Oct/2000:09:27:09 -0400] "GET /java/javaResources.html HTTP/1.0" 200
Dopo la conversione:
{"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"}