ELK数据抽取工具logstash报错:Your application used more memory than the safety cap of 1G

简介: 版权声明:本文为博主原创文章,如需转载,请标明出处。 https://blog.csdn.net/alan_liuyue/article/details/78976755 问题来源...
版权声明:本文为博主原创文章,如需转载,请标明出处。 https://blog.csdn.net/alan_liuyue/article/details/78976755

问题来源

  logstash在数据量少的情况下,是正常抽取数据的,但当多台服务器一起启动logstash去抽取大量数据的时候,logstash就会出现Your application used more memory than the safety cap of 1G的问题,进而抽取程序就停掉了;

问题说明

  从报错的提示来看,很明显就是内存溢出的问题(logstash的默认服务分配内存的1g),数据抽取缓存堆积太多,导致原本分配的堆内存空间不足,需要扩大服务的内存空间以解决内存溢出的问题;

解决方法

  1. 在logstash5.X版本以前,可以直接修改logstash的配置文件logstash.lib.sh,它的文件路径:/opt/logstash/bin;
    修改内容:
    LS_HEAP_SIZE=”${LS_HEAP_SIZE:=1g}”
    将其中的1g修改成32g,扩大es处理服务空间,修改之后的文件如下:
    LS_HEAP_SIZE=”${LS_HEAP_SIZE:=32g}”
  2. 在logstash5.X版本之后,修改的方式有所变动,需要修改es的配置文件,而不是logstash配置文件;
    修改方式:
    在es的bin目录下,找到elasticsearch启动文件,在头部新增命令语句:export ES_HEAP_SIZE=32g
    说明:
    ES_HEAP_SIZE的大小可根据生产环境的大小进行修改,一般不超过32g;

新问题出现

  当在elasticsearch设置了32g的分配内存之后,启动的时候发现又报错了,以下就是报错的内容:
  1. Error: encountered environment variables that are no longer supported
  2. Use jvm.options or ES_JAVA_OPTS to configure the JVM
  3. ES_HEAP_SIZE=32g: set -Xms32g and -Xmx16g in jvm.options or add “-Xms32g -Xmx32g” to ES_JAVA_OPTS
  解决方式:
  从报错的提示来看,jvm里面没有16g的配置,所以提供了两种方式去修改:
 1. 修改config目录下的jvm.options文件,修改配置:-Xms32g -Xmx32g
 2. 直接在elasticsearch启动文件里面添加配置:ES_JAVA_OPTS=”-Xms32g -Xmx32g”
 如果第一种修改方式不起作用,可选择第二种进行修改;

解决结果

  修改成功上面的配置之后,重新启动es,然后多台服务器一起去运行logstash导入数据的时候,再也没有出现那些奇葩的问题了,perfect,希望对有遇到这些问题的程序猿有所帮助~

相关文章
|
5月前
|
消息中间件 缓存 Java
ELK技术栈 - logstash学习笔记(九)
ELK技术栈 - logstash学习笔记(九)
63 0
|
2月前
|
监控
一文吃透企业级elk技术栈:9. zabbix结合logstash告警
一文吃透企业级elk技术栈:9. zabbix结合logstash告警
一文吃透企业级elk技术栈:10. es数据生命周期管理
一文吃透企业级elk技术栈:10. es数据生命周期管理
|
3月前
|
存储 缓存 数据处理
ELK中 Elasticsearch和Logstash内存大小设置的考虑
ELK中 Elasticsearch和Logstash内存大小设置的考虑
146 0
|
5月前
|
监控 应用服务中间件 nginx
使用 Docker Compose V2 快速搭建日志分析平台 ELK (Elasticsearch、Logstash 和 Kibana)
ELK的架构有多种,本篇分享使用的架构如图所示: Beats(Filebeat) -> -> Elasticsearch -> Kibana,目前生产环境一天几千万的日志,内存占用大概 10G
279 4
|
5月前
|
存储 监控 NoSQL
ELK技术栈 - logstash学习笔记(八)
ELK技术栈 - logstash学习笔记(八)
54 0
|
5月前
|
存储 编解码 自然语言处理
ELK技术栈 - logstash学习笔记(七)
ELK技术栈 - logstash学习笔记(七)
56 0
|
5月前
|
JSON 编解码 运维
ELK技术栈 - logstash学习笔记(六)
ELK技术栈 - logstash学习笔记(六)
57 0
|
5月前
|
编解码 Unix 应用服务中间件
ELK技术栈 - logstash学习笔记(五)
ELK技术栈 - logstash学习笔记(五)
49 0
|
5月前
|
编解码 JSON Java
ELK技术栈 - logstash学习笔记(四)
ELK技术栈 - logstash学习笔记(四)
60 0