1

我收到错误 java.lang.OutOfMemoryError: Java heap space while execution logstash with a large dictionary of 353 MB in translate filter。

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

我试图让 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 {}
}}

非常感谢。

4

2 回答 2

4

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

LS_HEAP_SIZE=2048m

于 2015-07-16T15:58:30.660 回答
4

我遇到了类似的问题。我的样子

logstash <Sequel::DatabaseError: Java::JavaLang::OutOfMemoryError: Java heap space 

为了解决这个问题,我不得不在我的 logstash 配置文件中添加一些设置。我在 jdc 部分添加了波纹管设置

jdbc_paging_enabled => true
jdbc_page_size => 200000

你可以看看这个线程 在这里输入链接描述

于 2019-01-28T15:00:13.087 回答