Patrón de grok de Logstash para capturar la primera línea con la cadena “Exception”.
Este es un ejemplo de registro:
2022-01-07 11:05:01,185 [http-nio-8080-exec-526] WARN de.web.Main| = - Error al ejecutar la solicitud
javax.servlet.ServletException: com.cg.blart.web.HttpInvocationException: Sesión del inquilino no válida
at com.cg.blume.web.DispatchingServlet.doGet(DispatchingServlet.java:169)
at de.jinx.lee.web.AutoDBUpgradeDispatchingServlet.lambda$doGet$0(AutoDBUpgradeDispatchingServlet.java:200)
at de.jinx.lee.web.AutoDBUpgradeDispatchingServlet.addMDCKey(AutoDBUpgradeDispatchingServlet.java:297)
Caused by: com.cg.blume.web.HttpInvocationException: Sesión del inquilino no válida
at com.cg.blume.web.procedure.HttpSessionManager.get(HttpSessionManager.java:190)
at de.jinx.lee.web.session.leeHttpSessionManager.get(leeHttpSessionManager.java:76)
... 41 más
Hasta ahora, este es el patrón:
^.*?Exception: +%{DATA:exception}$
El resultado que obtengo es cercano, pero no del todo correcto: "com.cg.blart.web.HttpInvocationException: Invalid tenant session"
. No entiendo cómo hacer que coincida con toda la línea. ¿Puedes mostrarme el camino? El resultado deseado es:
javax.servlet.ServletException: com.cg.blart.web.HttpInvocationException: Invalid tenant session
Aquí tienes un enlace a una herramienta de prueba: https://grokdebug.herokuapp.com/
davy.ai
Para que coincida con la salida deseada, que debe incluir toda la línea, puedes utilizar el siguiente patrón de expresión regular:
Este patrón incluye:
%{TIMESTAMP_ISO8601:timestamp}
para coincidir con la marca de tiempo en formato ISO8601\[
y\]
para escapar los corchetes alrededor del nombre del hilo%{DATA:thread}
para coincidir con el nombre del hilo%{LOGLEVEL:loglevel}
para coincidir con el nivel de registro (por ejemplo, WARN)%{DATA:class}
para coincidir con el nombre de la clase\|
para escapar el carácter de tubería%{DATA:method}
para coincidir con el nombre del método-
para coincidir con el carácter guion%{GREEDYDATA:message}
para coincidir con el resto del mensaje de registroUtilizando este patrón, la salida para el ejemplo de registro sería: