Puede configurar opciones comunes para todos los analizadores que producen campos con nombres.
Palabras reservadas para nombres de campo
Los nombres de campos están restringidos. Los siguientes nombres están reservados y no se pueden utilizar como nombres de campo.
- event_type
- hostname
- source
- text
Opciones comunes del analizador
Las opciones de la siguiente tabla se pueden usar con todos los analizadores admitidos.
| Opción | Descripción |
|---|---|
| base_parser | El nombre del analizador básico que amplía este analizador personalizado. Puede ser un nombre de analizador integrado u otro nombre de analizador personalizado. Esta clave de configuración es obligatoria. |
| field_decoder |
Los analizadores anidados se especifican como cadenas JSON. Las claves son los nombres del campo a los que se aplica el analizador anidado y el valor es el nombre del analizador que se utiliza para ese campo. Cada analizador anidado se aplica al campo correspondiente decodificado por el analizador básico. Los decodificadores de campo resultan útiles cuando el valor de un campo es un valor complejo; por ejemplo, una marca de tiempo. La opción
field_decoder también admite más objetos JSON complejos como argumentos que permiten utilizar condiciones para valores de campos específicos que se comprueban antes de que se aplique el analizador anidado.
Nota: Para obtener más información sobre las configuraciones condicionales y de uso, consulte Configuraciones condicionales para la siguiente sección de la opción field_decoder.
|
| field_rename | Vuelve a nombrar campos extraídos. Use una cadena JSON donde las claves son los nombres originales de los campos y los valores son los nuevos nombres de dichos campos. La opción field_decoder se aplica siempre antes de field_rename. El orden de estas opciones en el archivo INI no tiene importancia. Para mayor claridad, especifique primero field_decoder. |
| next_parser | Nombre del siguiente analizador que se debe ejecutar. Permite que múltiples analizadores se ejecuten secuencialmente en la misma entrada.
Nota: Los analizadores procesan a todos los analizadores resultantes definidos por la palabra clave
next_parser y pueden reemplazar un valor de campo ya extraído por un analizador anterior.
|
| exclude_fields | Una lista de nombres de campos separados por punto y coma que se deben eliminar del evento antes de entregarlo al servidor. Los nombres de los campos se eliminan antes de filtrar los eventos, de modo que el campo que se excluyó durante el análisis no se puede utilizar en la condición del filtro. |
| debug | Opción Sí o No que permite la depuración de un analizador en particular. Con la depuración habilitada, el analizador realiza un registro detallado de las entradas que recibe, la operación que llevó a cabo y el resultado que produjo. La opción se aplica por sección, es decir, únicamente al analizador definido por una sección en particular. El valor predeterminado para la depuración es debug=no para analizadores. |
Configuraciones condicionales para la opción field_decoder
Para registros con el mismo formato común, pero con diferencias significativas relacionadas con valores de campos específicos, los registros con gravedades info y error, por ejemplo, pueden utilizar el analizador anidado condicional para reducir la aplicación de analizadores innecesarios a los campos correspondientes de los registros ya analizados.
2019-03-29T11:00:54.858Z host-FQDN Hostd: error hostd[2099230] [Originator@6876 sub=Default opID=1983bdbe-c1-800f user=admin.user] AdapterServer caught exception: SSLExceptionE(SSL Exception: error:140000DB:SSL routines:SSL routines:short read: The connection was closed by the remote end during handshake.)
2019-03-29T11:00:55.477Z host-FQDN Hostd: info hostd[6D620B70] ['commonhost' opID=5759adcc-cf] [transportConnector] -- FINISH task-internal-5726666 -- -- Completed connection restart --
Puede utilizar la siguiente configuración para analizarlas:
[parser|clf_parser]
base_parser=clf
format=%t %{generator_host}i %i: %{log_severity}i %i[%{thread_id}i]%M
field_decoder={"log_message" : {"log_severity" : {"error" : "error_parser", "info" : "info_parser"}}}
exclude_fields=log_message
[parser|info_parser]
base_parser=clf
format=[%{common_info}i] [%{process}i] %M
field_rename={"log_message" : "info_log_content"}
[parser|error_parser]
base_parser=clf
format=[%{common_info}i] %{exception_handler}i %i:%{exception_type}i:%i:%{error_id}i:%i:%i:%i: %M
field_rename={"log_message" : "exception_content"}
Esta configuración genera los siguientes resultados:
timestamp=2019-03-29T11:00:54.858000 generator_host="host-FQDN" log_severity="error" thread_id="2099230" common_info=Originator@6876 sub=Default opID=1983bdbe-c1-800f user=admin.user exception_handler="AdapterServer" exception_type="SSLExceptionE(SSL Exception" error_id="140000DB" exception_content="The connection was closed by the remote end during handshake.)"
Además, se analizan los siguientes campos para el registro info:
timestamp=2019-03-29T11:00:55.477000 generator_host="host-FQDN" log_severity="info" thread_id="6D620B70" log_message="['commonhost' opID=5759adcc-cf] [transportConnector] -- FINISH task-internal-5726666 -- -- Completed connection restart --" common_info="'commonhost' opID=5759adcc-cf" process="transportConnector" info_log_content="-- FINISH task-internal-5726666 -- -- Completed connection restart --"