Grok: ¿cómo obtener un URIPATHPARAM?

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?

preguntado el 14 de febrero de 14 a las 01:02

2 Respuestas

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.

enter image description here

También considere usar http://grokdebug.herokuapp.com/ para probar tus patrones con un conjunto de otras cuerdas.

enter image description here

Respondido 11 Abr '14, 08:04

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 or haz tu propia pregunta.