Logstash не обрабатывает журналы MySQL правильно

Как Вы видите, сообщение не является просто сообщением, но также и содержит дату и метку времени.

Valid XHTML. Valid XHTML.

Это - MySQL Log: /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)

Это - конфигурация Logstash-грузоотправителя:/etc/logstash/shipper/conf.d/20-filter.conf

else if [type] == "mysql" {
  grok {
    patterns_dir => "/etc/logstash/patterns"
    match => [ "message", "%{MYSQLLOG}" ]
    overwrite => [ "message" ]
  }
}

Это - шаблон:

MYSQLLOG %{NUMBER:date} %{TIME:time} \[%{LOGLEVEL:loglevel}\] %{GREEDYDATA:message}

Я пытался зафиксировать это в течение многих недель, и у меня на самом деле был он работающий в один момент, но без вмешательства от моего конца это прекратило работать снова. Какие-либо подсказки относительно отладки?

0
задан 30 June 2015 в 12:26
1 ответ

Похоже, что между полями дата и время в ваших записях журнала есть дополнительное пространство, так что ваш грок не совпадает, о чем свидетельствует существование тега _grokparsefailure .

Попробуйте вместо этого этот образец:

%{NUMBER:date}  %{TIME:time} \[%{LOGLEVEL:loglevel}] %{GREEDYDATA:message}

Я проверил это в Grok Constructor и он совпал со всеми предоставленными вами линиями.

2
ответ дан 4 December 2019 в 13:48

Теги

Похожие вопросы