Logstash Grok Pattern

1

Primeiro de tudo peço desculpas por isso, eu sou muito ruim na expressão regular e tentar escrever padrão personalizado (como eu sou incapaz de encontrar algo no padrão de grok existente ou pode estar faltando alguma coisa) para analisar svn logs que está no formato de

r24|prashant|2015-02-26 12:38:04 -0800 (Thu, 26 Feb 2015)|33|Log: ABC-123 / Initial version||A   test/log_testing1 A   test/log_testing2 A   test/log_testing3 A   test/log_testing4 A   test/log_testing5 \n

Portanto, está no formato

$REVISION:$USER ID:$DATE:$CHECKED IN MESSAGE:$FILE CHECKED IN 

Então eu escrevi alguns padrões personalizados

SVN [r0-9]
SVN_TIMESTAMP %{YEAR}-%{MONTHNUM}-%{MONTHDAY} %{HOUR}:?%{MINUTE}(?::?%{SECOND})?%{ISO8601_TIMEZONE}?  (%{DAY}, %{MONTHDAY} %{MONTH} %{YEAR})

e o meu logstash-conf ficaria assim para a seção de filtro

filter {
  grok {
  match => { "message" => "%{SVN:revision}|%{USERNAME:username}|%{SVN_TIMESTAMP:svntimestamp}|%{GREEDYDATA:syslog_message}||%{GREEDYDATA:syslog_message" }
}

}

Não sei se está correto, mas, como de costume, não está funcionando. Qualquer ajuda é muito apreciada

    
por Prashant Lakhera 04.03.2015 / 03:37

1 resposta

0

Aqui está uma versão mais simples de um padrão que pode ajudar você a começar:

(?<SVN>[0-9]+)\|%{USERNAME:username}\|(?<SVN_TIMESTAMP>[^\|]+)\|%{GREEDYDATA:syslog_message}

Para simplificar, não usei padrões nomeados e o timestamp não é muito específico, mas isso deve ser mais fácil de corrigir.

Pontos importantes a serem observados:

  • o caractere de canal é um OR lógico nessas expressões, ele precisa ser escapado
  • como @tigran apontou: você precisa do símbolo de mais para "um ou mais" dígitos na revisão SVN
  • o seu padrão SVN_TIMESTAMP é muito complexo, mas não parece muito correto. No mínimo, você precisa escapar dos parênteses para combinar.

Eu recomendei que você pegasse sua opinião e meu padrão e colocasse no link - que permitirá que você a melhore gradualmente até o que você realmente precisa.

    
por 05.03.2015 / 00:43

Tags