Ввод файла logstash в режиме чтения для файла gzip занимает очень много памяти

В настоящее время я обрабатываю gzip файлы в logstash, используя плагин для ввода файлов. он потребляет очень большую память и продолжает перезагружаться даже после получения большого размера кучи. На данный момент в среднем мы обрабатываем 50 файлов в минуту и ​​планируем обрабатывать 1000 файлов в минуту. При 100 файлах требование к оперативной памяти достигает 10 Гб. Что является лучшим способом настройки этого конфига или есть лучший способ обработки такого огромного объема данных в logstash. Желательно, чтобы написать обработчик в nodejs или любых других языках.

Ниже приведен лог-конф конф.

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}"]
  }
}

0 ответов

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