Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Preprocesar los datos con los agentes
El agente puede preprocesar los registros analizados de los archivos monitorizados antes de enviarlos al flujo de Firehose. Para habilitar esta característica, añada la opción de configuración dataProcessingOptions
al flujo de archivos. Puede añadir una o más opciones de procesamiento que se ejecutarán en el orden especificado.
El agente es compatible con las siguientes opciones de procesamiento. Dado que el agente es de código abierto, el usuario puede desarrollar y ampliar sus opciones de procesamiento. Puede descargar el agente desde Kinesis Agent
Opciones de procesamiento
SINGLELINE
-
Elimina los caracteres de nueva línea y los espacios situados al principio y al final de las líneas para convertir un registro multilínea en un registro de una sola línea.
{ "optionName": "SINGLELINE" }
CSVTOJSON
-
Convierte un registro con un formato separado mediante delimitadores al formato JSON.
{ "optionName": "CSVTOJSON", "customFieldNames": [ "
field1
", "field2
",...
], "delimiter": "yourdelimiter
" }customFieldNames
-
[Obligatorio] Los nombres de campos utilizados como claves en cada par de valores de clave JSON. Por ejemplo, si especifica
["f1", "f2"]
, el registro "v1, v2" se convierte en{"f1":"v1","f2":"v2"}
. delimiter
-
La cadena utilizada como delimitador en el registro. El valor predeterminado es una coma (,).
LOGTOJSON
-
Convierte un registro con un formato de registro en un registro con formato JSON. Los formatos de registro admitidos son Apache Common Log, Apache Combined Log, Apache Error Log y RFC3164 Syslog.
{ "optionName": "LOGTOJSON", "logFormat": "
logformat
", "matchPattern": "yourregexpattern
", "customFieldNames": [ "field1
", "field2
",…
] }logFormat
-
[Obligatorio] El formato de entrada del registro. Los valores posibles son los siguientes:
-
COMMONAPACHELOG
: formato común de registro de Apache. Cada entrada de registro sigue el siguiente patrón de forma predeterminada: "%{host} %{ident} %{authuser} [%{datetime}] \"%{request}\" %{response} %{bytes}
". -
COMBINEDAPACHELOG
: formato combinado de registro de Apache. Cada entrada de registro sigue el siguiente patrón de forma predeterminada: "%{host} %{ident} %{authuser} [%{datetime}] \"%{request}\" %{response} %{bytes} %{referrer} %{agent}
". -
APACHEERRORLOG
: formato de registro de errores de Apache. Cada entrada de registro sigue el siguiente patrón de forma predeterminada: "[%{timestamp}] [%{module}:%{severity}] [pid %{processid}:tid %{threadid}] [client: %{client}] %{message}
". -
SYSLOG
: formato RFC3164 de Syslog. Cada entrada de registro sigue el siguiente patrón de forma predeterminada: "%{timestamp} %{hostname} %{program}[%{processid}]: %{message}
".
-
matchPattern
-
Sobrescribe el patrón predeterminado del formato de log especificado. Utilice esta configuración para extraer valores de entradas de log si utilizan un formato personalizado. Si especifica
matchPattern
, también debe especificarcustomFieldNames
. customFieldNames
-
Los nombres de campos utilizados como claves en cada par de valores de clave JSON. Utilice esta opción para definir nombres de campos para valores extraídos de
matchPattern
, o sobrescriba los nombres de campos de los formatos de logs predefinidos.
ejemplo : Configuración LOGTOJSON
Este es un ejemplo de configuración LOGTOJSON
de una entrada de registro en Formato común de registro de Apache convertida a formato JSON:
{ "optionName": "LOGTOJSON", "logFormat": "COMMONAPACHELOG" }
Antes de la conversión:
64.242.88.10 - - [07/Mar/2004:16:10:02 -0800] "GET /mailman/listinfo/hsdivision HTTP/1.1" 200 6291
Después de la conversión:
{"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"}
ejemplo : Configuración LOGTOJSON con campos personalizados
Este es otro ejemplo de configuración LOGTOJSON
:
{ "optionName": "LOGTOJSON", "logFormat": "COMMONAPACHELOG", "customFieldNames": ["f1", "f2", "f3", "f4", "f5", "f6", "f7"] }
Con esta configuración, la misma entrada de registro con Formato común de registro de Apache del ejemplo anterior se convierte a formato JSON de la siguiente manera:
{"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"}
ejemplo : Convertir una entrada de registro con Formato común de registro de Apache
La siguiente configuración de secuencia convierte la entrada de registro común de Apache en un registro de una línea con formato JSON:
{ "flows": [ { "filePattern": "
/tmp/app.log*
", "deliveryStream": "my-delivery-stream
", "dataProcessingOptions": [ { "optionName": "LOGTOJSON", "logFormat": "COMMONAPACHELOG" } ] } ] }
ejemplo : Convertir registros multilínea
La siguiente configuración de flujo analiza aquellos registros multilínea cuya primera línea comience por "[SEQUENCE=
". Primero, cada registro se convierte en un registro de una línea. Después, se extraen los valores del registro basándose en tabulaciones delimitadoras. Finalmente, los valores extraídos se asignan a valores customFieldNames
específicos para formar un registro de una línea en formato JSON.
{ "flows": [ { "filePattern": "
/tmp/app.log*
", "deliveryStream": "my-delivery-stream
", "multiLineStartPattern": "\\[SEQUENCE=
", "dataProcessingOptions": [ { "optionName": "SINGLELINE" }, { "optionName": "CSVTOJSON", "customFieldNames": [ "field1
", "field2
", "field3
" ], "delimiter": "\\t
" } ] } ] }
ejemplo : Configuración LOGTOJSON con patrón de coincidencia
Este es un ejemplo de una configuración de entrada de registro con Formato común de registro de Apache LOGTOJSON
convertida a formato JSON con el último campo (bytes) omitido:
{ "optionName": "LOGTOJSON", "logFormat": "COMMONAPACHELOG", "matchPattern": "^([\\d.]+) (\\S+) (\\S+) \\[([\\w:/]+\\s[+\\-]\\d{4})\\] \"(.+?)\" (\\d{3})", "customFieldNames": ["host", "ident", "authuser", "datetime", "request", "response"] }
Antes de la conversión:
123.45.67.89 - - [27/Oct/2000:09:27:09 -0400] "GET /java/javaResources.html HTTP/1.0" 200
Después de la conversión:
{"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"}