如何减少 Logstash 的 RAM 使用量?

How can I reduce RAM usage of Logstash?

我正在为我的 Logstash RAM 问题寻找答案,因为它已接近 100%。我为它做了很多搜索,但他们没有为我工作。下面的代码是我的 logstash.conf 文件。我认为它需要一些小改动。

Logstash.conf:

input {
  file {
        path => ["c:/mylogs/*.txt"]
        start_position => "beginning" 
        discover_interval => 10
        stat_interval => 10
        sincedb_write_interval => 10
        close_older => 10
        codec => "json"
  }
}

filter {
  date {
        match => ["mydate","yyyy-MM-dd HH:mm:ss.SSSS" ]
        timezone => "UTC"  
  }
  date {
        match => ["TimeStamp", "ISO8601"]
  }

  json {
        source => "request"
        target => "parsedJson"
  }
}

output {
  stdout {
        codec => rubydebug
  }
  elasticsearch {
        hosts => [ "http://localhost:9200" ]
        index => "log-%{+YYYY.MM}"
  }
}

Logstash 使用 JVM 运行。 logstash 使用的 JVM 选项可以在 logstash 文件夹 (see the doc) 的 config 文件夹中的 jvm.options 文件中进行配置。在该文件中,您可以设置一个 -Xmx 选项来设置最大堆大小,这将限制使用的最大内存。

从调整 logstash page,您还可以配置批处理大小和 worker 数量以减少运行中事件的数量,这应该会减少 RAM 使用,但也会降低 logstash 的吞吐量.