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

Far*_*res 1 java out-of-memory elasticsearch heap-size logstash

我收到一个错误

java.lang.OutOfMemoryError: Java heap space while executing logstash with a 
large dictionary of 353 mega bytes in translate filter. 
Run Code Online (Sandbox Code Playgroud)

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

我尝试让 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 {}
}}
Run Code Online (Sandbox Code Playgroud)

小智 6

我也有类似的问题。我的看起来

logstash <Sequel::DatabaseError: Java::JavaLang::OutOfMemoryError: Java heap space 
Run Code Online (Sandbox Code Playgroud)

为了解决这个问题,我必须在 Logstash 配置文件中添加一些设置。我在 jdc 部分添加了以下设置

jdbc_paging_enabled => true
jdbc_page_size => 200000
Run Code Online (Sandbox Code Playgroud)

您可以查看此线程, 在此处输入链接描述

  • “master上已经添加了分页来缓解这个痛苦” (2认同)

小智 5

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

LS_HEAP_SIZE=2048m