Elasticsearch Logstash Kibana и Grok Как разбить сообщение на части?

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

Итак, для примера скажем, что это ваша строка журнала в файле журнала.

2017-12-05 [user:edjm1971] msg:Это сообщение от системы.

И что вы хотите сделать, так это получить значение пользователя и установить его в какое-то сопоставление индекса, чтобы вы могли искать все журналы, которые были этим пользователем. Также вы должны увидеть информацию из сообщения в своих полях в Kibana.

Мой файл pipe.conf для logstash похож на

grok {
  match => {
    "message" => "%{TIMESTAMP_ISO8601:timestamp} [sid:%{USERNAME:sid} msg:%{DATA:message}"
  }
  add_tag => [ "foo_tag", "some_user_value_from_sid_above" ]
}

Теперь, когда я запускаю регистратор для создания журналов, данные передаются в ES, и я вижу данные в KIBANA, но я вообще не вижу foo_tag со значением sid. Как именно я могу использовать это для создания нового тега, который сохраняется в ES, чтобы я мог видеть нужные мне данные из сообщения?

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

Также для сопоставления logstash используется некоторое автоматическое сопоставление, поскольку значение пути равно нулю.

Я тоже не понимаю, как создать сопоставление для этого.

Руководство очень ценится.


person Elijah    schedule 06.12.2017    source источник
comment
Похоже, ваш фильтр grok неверен, не могли бы вы попробовать что-то вроде %{YEAR:year}-%{MONTHNUM:month}-%{MONTHDAY:day} \[user:%{USERNAME:sid}\] msg:%{GREEDYDATA:yourmessage} и посмотреть, сможете ли вы отфильтровать sid в Kibana?   -  person Phonolog    schedule 09.12.2017
comment
У меня сложилось впечатление, что если в журналах не выводятся ошибки, то с синтаксисом все в порядке. Думаю, мне нужно будет установить отладчик.   -  person Elijah    schedule 10.12.2017
comment
Да, в качестве альтернативы вы можете протестировать свои шаблоны grok онлайн на grokconstructor.appspot.com/do/match. Более новые версии Kibana (думаю, начиная с 5.6?) также включить отладчик   -  person Phonolog    schedule 10.12.2017
comment
Я отследил проблему до самой части регулярного выражения. Имеется в виду не готовый элемент Grok, а что-то столь же простое, как выполнение ([a-z]+) сбоя. Можете ли вы привести пример того, как, черт возьми, написать это, чтобы Грок понял?   -  person Elijah    schedule 11.12.2017
comment
Хм, вы можете проверить поддерживаемое выражение grok, предоставленное logstash здесь. Надеюсь это поможет...   -  person Phonolog    schedule 12.12.2017
comment
Другой вопрос. У меня все работает, но есть одна вещь, которую я не могу понять. Как указать символ [ в разделе соответствия? Только когда я создаю индивидуальное регулярное выражение, я могу заставить его работать, но это кажется чертовски глупым, чтобы делать это, чтобы соответствовать символу, например. %{ОТКРЫТАЯ СКОБКА: \[}   -  person Elijah    schedule 12.12.2017
comment
честно говоря, я пробовал это в течение последнего дня, и отладчик продолжал говорить о синтаксической ошибке, когда я добавлял ее. Просто попробовал еще раз, и это сработало. Спасибо!   -  person Elijah    schedule 12.12.2017