#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! Даю вам «полезный» голос за ваш хороший ответ.