Como você pode ver, a mensagem não é apenas a mensagem, mas também contém a data e o carimbo de data/hora.
. .
Este é o log do MySQL: /var/log/mysql/error.log
150630 9:01:29 [Warning] Access denied for user 'test1'@'localhost' (using password: YES)
150630 9:03:39 [Warning] Access denied for user 'test3'@'localhost' (using password: YES)
150630 9:07:48 [Warning] Access denied for user 'test5'@'localhost' (using password: YES)
150630 9:10:00 [Warning] Access denied for user 'test7'@'localhost' (using password: YES)
150630 9:12:21 [Warning] Access denied for user 'test9'@'localhost' (using password: YES)
Esta é a configuração do Logstash-shipper: /etc/logstash/shipper/conf.d/20-filter.conf
else if [type] == "mysql" {
grok {
patterns_dir => "/etc/logstash/patterns"
match => [ "message", "%{MYSQLLOG}" ]
overwrite => [ "message" ]
}
}
Este é o padrão:
MYSQLLOG %{NUMBER:date} %{TIME:time} \[%{LOGLEVEL:loglevel}\] %{GREEDYDATA:message}
Estou tentando consertar isso há semanas e, na verdade, funcionou em um momento, mas sem intervenção da minha parte, ele parou de funcionar novamente. Alguma dica sobre depuração?
Parece que há um espaço extra em suas entradas de log entre os campos
date
etime
, portanto, seu grok não corresponde, conforme evidenciado pela existência da_grokparsefailure
tag.Tente este padrão em vez disso:
Eu testei isso no Grok Constructor e combinou com todas as linhas que você forneceu.