Grok: ¿cómo obtener un URIPATHPARAM?
Frecuentes
Visto 4,596 equipos
2
Según el logstash / asimilar la documentación, se puede encontrar un URI con el siguiente patrón de coincidencia
#Example log file
55.3.244.1 GET /index.html 15824 0.043
#Example Grok match pattern
%{IP:client} %{WORD:method} %{URIPATHPARAM:request} %{NUMBER:bytes} %{NUMBER:duration}
Estoy tratando de obtener un URI que está encapsulado entre comillas dobles y, según grokdebug.herokuap.com, esto no es válido.
#My log file
Started POST "/main/builder.git/git-upload-pack" for 127.0.0.1 at 2014-02-13 22:37:10 +0000
#My grok match patterns
%{WORD:started} %{WORD:method} %{URIPATHPARAM:gitrepo}
# 0 results
¿Cómo puedo encontrar un patrón de coincidencia para un URI citado?
2 Respuestas
3
Intenta usar http://grokdebug.herokuapp.com/discover por descubrir los filtros para tus cadenas. Esta aplicación es muy útil, especialmente al usar y probar los mensajes de registro largos y dinámicos.
También considere usar http://grokdebug.herokuapp.com/ para probar tus patrones con un conjunto de otras cuerdas.
Respondido 11 Abr '14, 08:04
3
Parece que la cadena citada necesita comillas en el patrón de coincidencia de grok. Aquí está la solución que parece funcionar en su mayoría.
%{WORD:started } %{WORD:method} "%{URIPATH:gitrepo}" %{WORD} %{IPV4} %{WORD} %{TIMESTAMP_ISO8601} %{ISO8601_TIMEZONE}
#Result
{
"started": [
"Started"
],
"method": [
"POST"
],
"gitrepo": [
"/main/builder.git/git-upload-pack"
],
"WORD": [
"for",
"at"
],
"IPV4": [
"127.0.0.1"
],
"TIMESTAMP_ISO8601": [
"2014-02-13 22:37:10"
],
"YEAR": [
"2014"
],
"MONTHNUM": [
"02"
],
"MONTHDAY": [
"13"
],
"HOUR": [
"22",
null,
"00"
],
"MINUTE": [
"37",
null,
"00"
],
"SECOND": [
"10"
],
"ISO8601_TIMEZONE": [
null,
"+0000"
]
}
Respondido 14 Feb 14, 01:02
No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas regex gitlab logstash or haz tu propia pregunta.