Filebeat объединяет несколько строк из mysql-slow.log в одну строку - PullRequest
0 голосов
/ 08 ноября 2019

Я пытаюсь проанализировать mysql-slow.log, используя Filebeat Logstash и Elasticsearch. У меня есть сообщения в файле mysql-slow.log, которые выглядят следующим образом:

# Time: 2019-11-08T20:02:05.474508Z
# User@Host: user[user] @ localhost []  Id:     2
# Query_time: 0.000716  Lock_time: 0.000223 Rows_sent: 2  Rows_examined: 2
SET timestamp=1573243325;
select * from Persons;

Сначала я пытаюсь заставить Filebeat отправить это сообщение журнала с 5 строками вasticsearch, но все они вместе в одну строку.

Я установил многострочный ввод в filebeat.yml

multiline.pattern = `^\#`
multiline.negate = true
multiline.match = after

К сожалению, это не работает, иasticsearch получает строки отдельно

  1. сообщение -> # Время: 2019-11-08T20: 02: 05.474508Z
  2. message -> # User @ Host: user [user] @ localhost [] Id: 2 и т. Д. *

Iхотите получить его одним сообщением в следующем формате:

# Time: 2019-11-08T20:02:05.474508Z # User@Host: user[user] @ localhost []  Id:     2 # Query_time: 0.000716  Lock_time: 0.000223 Rows_sent: 2  Rows_examined: 2 SET timestamp=1573243325; select * from Persons;

1 Ответ

1 голос
/ 09 ноября 2019

Ваш многострочный шаблон неверен, он будет соответствовать любой строке, начинающейся с #, поэтому каждая из первых трех строк в вашем примере будет событием для filebeat / logstash.

Вам необходимоизмените ваш многострочный шаблон так, чтобы он совпадал только с первой строкой вашего события, то есть строкой, начинающейся с # Time.

. В моих тестах работала следующая конфигурация filebeat.

filebeat.inputs:
- type: log
  enabled: true
  paths:
    - /opt/data/stackoverflow/*.log
  multiline.pattern: '^\#[[:space:]]Time'
  multiline.negate: true
  multiline.match: after

output.logstash:
  hosts: ["elk:5044"]

logstashКонвейер упрощает прослушивание 5044 и выводит вasticsearch, после чего получается следующий результат:

enter image description here

Как видите, все строки файлаиндексируется как единичное событие наasticsearch.

...