Foward barra no kibana 3 query

4

Estou tentando adicionar uma consulta que corresponderá a uma solicitação que termina com uma barra, como esta:

n.n.n.n - - [16/Oct/2013:16:40:41 +0100] "GET / HTTP/1.1" 200 25058 "-" "Mozilla/5.0 (iPad; CPU OS 7_0_2 like Mac OS X) AppleWebKit/537.51.1 (KHTML, like Gecko) Version/7.0 Mobile/11A501 Safari/9537.53"

Estou usando o tipo de consulta Lucene.

Se minha consulta estiver definida como * , vejo o evento.

Se eu configurá-lo para request:"css" , vejo solicitações de CSS, conforme o esperado.

No entanto, todos os itens a seguir não produzem resultados:

  • request:"/"
  • request:"\/"
  • request:"\/"

Eu tentei uma expressão regular do Lucene, sem sorte:

  • request:/\//

Noto que outra pessoa está recebendo o que parece ser um problema semelhante, embora no Kibana 2: link

Como posso consultar solicitações que terminam com um caractere / ?

    
por G Mawr 16.10.2013 / 18:02

3 respostas

0

Eu consegui contornar meu problema adicionando um campo antes que os registros sejam enviados para o elasticsearch.

No meu arquivo indexer.conf , adicionei este código:

filter {
  if [request] =~ /\/$/ {
    mutate {
      add_field => {
        'file_type' => 'html'
      }
    }
  }
}

Agora posso escolher os registros em que estou interessado com a consulta file_type:"html" .

Isso pode ser uma maneira melhor de fazer isso, já que há um aviso sobre o uso de curingas principais aqui:

Allowing a wildcard at the beginning of a word (eg "*ing") is particularly heavy, because all terms in the index need to be examined, just in case they match.

fonte: link

Então, provavelmente adicionarei testes para imagens, JavaScript, CSS, etc.

    
por 15.04.2014 / 16:17
0

Qual mapeamento você definiu?

Dependendo do mapeamento que você definiu no campo [request], é possível que a barra '/' não esteja armazenada no índice elasticsearch.

Se você adicionar um painel de termo ao kibana para o campo [request], verá os valores completos da solicitação ou verá esses valores sendo divididos em palavras-chave / termo?

    
por 17.10.2013 / 16:59
0

Usando parênteses ao redor. * funciona bem para mim.

request.raw:/(.*)\//

Ele me retorna todo o URL que termina com / .

    
por 01.07.2015 / 09:50