В настоящее время я обрабатываю gzip файлы в logstash, используя плагин для ввода файлов.он потребляет очень большую память и продолжает перезагружаться даже после получения большого размера кучи.На данный момент в среднем мы обрабатываем 50 файлов в минуту и планируем обрабатывать 1000 файлов в минуту.При 100 файлах требование к оперативной памяти достигает 10 Гб.Что является лучшим способом настройки этого конфига или есть лучший способ обработки такого огромного объема данных в logstash.Желательно ли написать обработчик на nodejs или любом другом языке.
Ниже приведен лог-файл conf.
input {
file {
id => "client-files"
mode => "read"
path => [ "/usr/share/logstash/plugins/message/*.gz" ]
codec => "json"
file_completed_action => log_and_delete
file_completed_log_path => "/usr/share/logstash/logs/processed.log"
}
}
filter {
ruby {
code => 'monitor_name = event.get("path").split("/").last.split("_").first
event.set("monitorName", monitor_name )
split_field = []
event.get(monitor_name).each do |x|
split_field << Hash[event.get("Datapoints").zip(x)]
end
event.set("split_field",split_field)'
}
split {
field => "split_field"
}
ruby {
code => "event.get('split_field').each {|k,v| event.set(k,v)}"
remove_field => ["split_field","Datapoints","%{monitorName}"]
}
}