记一次skywalking dashboard 无数据显示的解决过程

2019年2月28日

1.skywalking dashboard 13:57开始突然没有数据
显示如下
记一次skywalking dashboard 无数据显示的解决过程_第1张图片

此时es状态:
记一次skywalking dashboard 无数据显示的解决过程_第2张图片
观看skywalking 中collector日志:
记一次skywalking dashboard 无数据显示的解决过程_第3张图片
其中出现大量的错误日志(本次服务于11点30重启后就一直存在)

观看skywalking 中agent的日志:
记一次skywalking dashboard 无数据显示的解决过程_第4张图片
出现大量此类日志,继续往上查看日志
记一次skywalking dashboard 无数据显示的解决过程_第5张图片
发现其中的关键在于
es 在写入的时候 已经没有资源去处理了,所以会一直显示有to many request,"es_rejected_execution_exception"这类日志


所以结合log,可以得出本质问题出现在es处理 skywalking collector 数据写入时,已经无法分配出资源来。原因主要是机器资源紧张…,所以可以从以下几个方面去优化

  1. 可以修改 es 写的queue的size,同时修改es bulk处理的一些配置,如调小flush的时间 和 flush的数据大小,同时es的bulk 可以设置忽律数据写入失败后的重试(这里视数据重要程度而定)。
    https://www.elastic.co/guide/en/elasticsearch/client/java-api/5.5/java-docs-bulk-processor.html
  2. 集群化es

修改queue_size的时候发现 不可动态修改,因此需要在es的yml文件中增加配置来修改
thread_pool.write.queue_size: 1000
官网yml相关参数设置的写法

你可能感兴趣的:(APM,Elasticsearch)