使用大型字典执行logstash时出现堆空间错误翻译过滤器

问题描述

增加堆大小,请在启动logstash之前设置LS_HEAP_SIZE环境变量。

LS_HEAP_SIZE=2048m

解决方法

我在执行翻译过滤器中包含353兆字节的大型字典的logstash时遇到java.lang.OutOfMemoryError错误:Java堆空间。

我用它来查找我的输入数据。

我试图允许JVM使用更多内存(使用java -Xmx2048m)。假设我做错了,因为它没有效果。

我用“较小”的字典测试了我的配置文件,它工作正常。有什么帮助吗?如何给logstash足够的RAM不死?

我的配置文件如下所示:

input {  
file {
  type => "MERGED DATA"
  path => "C:\logstash-1.4.1\bin\..."
  start_position => "beginning"
    sincedb_path => "/dev/null"}}

 filter {
grok {
    match => [ "message","..." ]}

if (...") {
translate {dictionary_path => "C:\logstash-1.4.1\bin\DICTIONARY.yaml"  field => "Contact_ID"  destination => "DATA" fallback => "no match" refresh_interval => 60  }

grok {match => [ "DATA","..." ]}

mutate {remove_field => ...}

else if ...

else if ...

mutate {   ... }
}
output { if [rabbit] == "INFO" {
  elasticsearch {
    host => "localhost"
            }
  stdout {}
}}

非常感谢。