Стек ELK (Elasticsearch, Logstash, Kibana) — действительно ли мне нужно настроить и Logstash, и Filebeat?

Я хотел бы развернуть стек ELK локально для нашего пользовательского приложения. Итак, я обратился к официальной документации за руководствами по установке, установил кластер Elasticsearch и Kibana. Тогда возникает вопрос: документация говорит, что я могу обрабатывать журналы из любого пользовательского приложения, если захочу (если встроенные модули мне не подходят), и я должен просто настроить Filebeat, чтобы он мог собирать эти журналы. в качестве входа. Но что должно быть на выходе для Filebeat? Я слышал, что Elasticsearch должен получать обработанные, структурированные журналы (например, в формате JSON) в качестве входных данных; но наше приложение создает журналы в виде простого текста (поскольку это Java-приложение, журналы могут включать в себя трассировку стека и другие смешанные данные), и они должны быть сначала обработаны и структурированы... Или не должны?

Итак, вот мои вопросы по этой ситуации:

  1. Нужно ли устанавливать выходные данные Filebeat в качестве входных данных Logstash для форматирования и структурирования журналов, а затем устанавливать выходные данные Logstash в качестве входных данных Elasticsearch? Или я могу пересылать журналы из Filebeat прямо в Elasticsearch?
  2. Мне действительно нужен Filebeat в этой ситуации, или, может быть, Logstash можно настроить для чтения лог-файлов самостоятельно?
1
0
801
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Filebeat и Logstash могут работать как самостоятельно, так и вместе. Если все, что вам нужно сделать, это собрать файлы журналов и отправить их в Elasticsearch без какой-либо обработки, то я бы посоветовал использовать Filebeat, поскольку он более легкий, чем Logstash.

Если вам нужно выполнить некоторую обработку и преобразование файлов журнала, у вас есть несколько вариантов в зависимости от того, какое решение вы выберете. Вы можете использовать:

В качестве примечания я обращаю ваше внимание на тот факт, что ваше Java-приложение не обязательно должно создавать журналы в виде простого текста. Используя ecs-logging-java, он также может создавать журналы JSON, готовые для загрузки в Elasticsearch.

Если вы используете указанную выше библиотеку ведения журналов, то Filebeat идеально подойдет для вашего случая использования, но, конечно, это зависит от того, нужно ли вам анализировать и обрабатывать поле message в ваших журналах или нет.

Я успешно использовал процессоры Filebeat для пользовательских файлов журналов. Требуется немного усилий, но вся документация есть, и это не сложно. В целом он удаляет одну переменную (Logstash) из уравнения, что значительно упрощает ситуацию, и для небольших установок этого более чем достаточно.

Tomalak 17.12.2020 13:04

@Val Спасибо, я только что понял, что мы должны переписать наше приложение, чтобы оно создавало уже отформатированные журналы для систем агрегации журналов, таких как ELK.

Dmitry S. 22.12.2020 15:46

Другие вопросы по теме