Procesamiento de registros ELK Filebeat NLog
Hice la configuración basada en esta pregunta, pero todavía no funciona.
Cadena de registro:
2021-11-19 23:55:45.1605|INFO|Microsoft.Hosting.Lifetime|Now listening on: http://0.0.0.0:7007
filebeat.yml:
procesadores:
– agregar_metadatos_de_host: ~
– disecar:
tokenizador: “%{} %{}|{%{nivel}|%{módulo}|%{msg}”
campo: “mensaje”
prefijo_objetivo: “”
En Kibana veo que el tokenizador no funciona:
https://i.stack.imgur.com/1jzwE.png
¿Qué estoy haciendo mal?
Actualización 21.11.2021 #1
Usando el ejemplo de “sidharth vijayakumar”:
procesadores:
– agregar_metadatos_de_host:
host: “unix:///host_docker/docker.sock”
– disecar:
tokenizador: “%{TIMESTAMP_ISO8601:time}|%{LOGLEVEL:nivel}|%{GREEDYDATA:módulo}|%{GREEDYDATA:msg}”
campo: “mensaje”
prefijo_objetivo: “”
Pero obtengo una excepción de filebeat:
Saliendo: error al cargar el archivo de configuración: yaml: línea 11: se encontró un carácter de escape desconocido
davy.ai
A partir de la cadena de registro proporcionada y filebeat.yml, parece que el tokenizador especificado en el procesador
dissect
no puede analizar adecuadamente el mensaje de registro. El tokenizador%{} %{}|{%{level}|%{module}|%{msg}
no puede identificar el separador entre la marca de tiempo y otros campos en el mensaje de registro.Para solucionar este problema, puede intentar utilizar el siguiente tokenizador en el procesador
dissect
:Este tokenizador debería ser capaz de analizar el mensaje de registro en función del formato de la marca de tiempo, el nivel de registro, el módulo y los campos de mensaje.
Actualización (21/11/2021):
En el
filebeat.yml
actualizado, hay un problema con los caracteres de escape utilizados en la URL del socket Unix. Para solucionar este problema, puede usar comillas simples para definir la URL del socket Unix y eliminar los caracteres de escape de la siguiente manera: