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