как я могу загружать и анализировать большие файлы из logstash в Elasticsearch

#elasticsearch #logstash #kibana #elk

Вопрос:

У меня есть кластер из 3 узлов с 1 ведущим и 2 узлами данных, каждый из которых рассчитан на 1 ТБ. Я увеличил оба-Xms24g-Xmx24g до половины моей оперативной памяти (всего 48 ГБ). Я успешно загрузил файл размером 140 МБ из Kibana в elk из графического интерфейса, увеличив его со 100 МБ до 1 ГБ. Когда я попытался загрузить тот же файл только с помощью logstash, процесс застрял и сломался. Мой конвейер довольно прост

 input {
file {
path => "/tmp/*_log"
}
}
output {
elasticsearch { hosts => ["localhost:9200"] }
stdout { codec => rubydebug }
}
 

небольшие файлы отлично работают. Я не могу передавать большие файлы.
журнал содержит 1 миллион строк
Я установил все поля в /etc/security/limits.conf на неограниченное
количество. Есть идеи, чего мне не хватает?

Комментарии:

1. Вам нужно установить start_position параметр beginning в поле ввода файла, если вы не установите этот параметр, logstash будет считывать файлы с конца, а это означает, что будут считываться только новые строки.

Ответ №1:

вам нужно будет увеличить размер памяти в файле /etc/logstash/jvm.options

Рекомендуемый размер кучи для типичных сценариев приема должен быть не менее 4 ГБ и не более 8 ГБ.

Загрузка ЦП может излишне увеличиться, если размер кучи слишком мал, что приведет к постоянному сбору мусора в JVM. Вы можете проверить наличие этой проблемы, удвоив размер кучи, чтобы увидеть, улучшится ли производительность. Не увеличивайте размер кучи сверх объема физической памяти. Для запуска операционной системы и других процессов необходимо оставить немного памяти. В качестве общего рекомендации для большинства установок не превышайте 50-75% физической памяти. Чем больше у вас памяти, тем больший процент вы можете использовать.

Установите минимальный (Xms) и максимальный (Xmx) размер выделения кучи на одно и то же значение, чтобы предотвратить изменение размера кучи во время выполнения, что является очень дорогостоящим процессом.

Вы можете выполнить более точные измерения кучи JVM с помощью утилиты командной строки jmap, распространяемой с Java, или с помощью VisualVM

Комментарии:

1. Добро пожаловать в Stack Overflow, @hagay_bar! Ваш ответ можно было бы улучшить, предоставив более подробную информацию о вашей инструкции.

2. Выполнено. надеюсь, это все покроет

3. Спасибо, @hagay_bar! Даю вам «полезный» голос за ваш хороший ответ.