Capturando Regex no Splunk

1

Estou tentando pegar os caminhos de diretórios dos pedidos GET e contá-los no Splunk usando essa regex de captura.

index=main sourcetype="access_combined_wcookie" | rex "(?i)\"GET /(?P<MYDIR>\w+)/" | timechart count by MYDIR 

Esse tipo de trabalho. Ele pega o nome dos diretórios de nível superior e os soma pelo tempo conforme o esperado, exceto que também exibe as solicitações HEAD como "NULL" ou "OTHER".

O regex funciona como esperado tanto no perl quanto no Python (isto é, ele não corresponde a um pedido HEAD). Alguém tem uma idéia do que eu tenho que fazer para que o Splunk pare de relatar as coisas que eu não capturei para começar com? Esse comportamento é realmente contra-intuitivo.

    
por user181496 14.07.2013 / 01:00

1 resposta

0

A razão pela qual você acha que o Splunk está relatando coisas que você não está capturando para começar é porque você entendeu mal como o comando rex funciona.

rex não filtra registros. Adiciona os campos que você extrai aos eventos, se o regex existe. Então, no seu caso, você está adicionando o campo MYDIR a todos os eventos que contêm GET, mas você ainda está recebendo todos os eventos.

O sourcetype access_combined_wcookie é um tipo de fonte pretendido no Splunk, que já possui extrações de campo definidas. Seria mais fácil usar o campo method já extraído para limitar sua pesquisa apenas aos GETs.

index=main sourcetype="access_combined_wcookie" method=GET | rex "(?i)\"GET /(?P<MYDIR>\w+)/" | timechart count by MYDIR 
    
por 15.11.2018 / 22:53

Tags