Filtrando registros Berkeley Research Scanning Nginx com o Logcheck

1

Estou recebendo entradas de log Nginx do link (e outros), com muitos caracteres especiais nas solicitações, que Estou tentando filtrar. Por exemplo:

2016/07/19 09:54:49 [error] 2006#2006: *5878 testing "//http" existence failed (2: No such file or directory) while logging request, client: 169.229.3.91, server: common.example.co.uk, request: "J/¤nkb=© 2]rµÐ[‘lç¢î­/€@I"-
2016/07/19 11:29:05 [error] 2007#2007: *5945 testing "//http" existence failed (2: No such file or directory) while logging request, client: 169.229.3.91, server: common.example.co.uk, request: "i•jœ»@d‹˜þˆ¿–j•c|B‹¤¯Dñ½°|ôáV*Õ8ÓãÎð€í)ÑYCæôì    £¶›¬Dxîoÿv.N"

Minha regex usual do Logcheck para esse tipo de solicitação:

^[[:digit:]]{4}/[[:digit:]]{2}/[[:digit:]]{2} [[:digit:]]{2}:[[:digit:]]{2}:[[:digit:]]{2} \[error\] [#[:digit:]]+: \*[[:digit:]]+ testing .+ existence failed \(2: No such file or directory\) while logging request, .+$

não está pegando eles. Eu tentei:

^[[:digit:]]{4}/[[:digit:]]{2}/[[:digit:]]{2} [[:digit:]]{2}:[[:digit:]]{2}:[[:digit:]]{2} \[error\] [#[:digit:]]+: \*[[:digit:]]+ testing .+ existence failed \(2: No such file or directory\) while logging request, (.|[[:cntrl:]])+$

mas sem sorte. Ambas as variações correspondem às entradas de log no RegexBuddy definido como POSIX ERE. Algum especialista em expressões regulares / logcheck consegue me ajudar?

    
por jetboy 19.07.2016 / 20:28

1 resposta

0

Você precisa escapar de suas barras. Eu quero dizer os cortes, que separam a data.

^[[:digit:]]{4}\/[[:digit:]]{2}\/[[:digit:]]{2} [[:digit:]]{2}:[[:digit:]]{2}:[[:digit:]]{2} \[error\] [#[:digit:]]+: \*[[:digit:]]+ testing .+ existence failed \(2: No such file or directory\) while logging request, .+$

Então, sua expressão usual funciona bem para mim, mesmo com esses caracteres especiais no final.

    
por 20.07.2016 / 13:53

Tags