es 无日志,logstash failed or were rejected by the previous bulk request

现象

发现kibana没有日志;
然后先看下kibana的管道信息,发现log管道没有写入
下一步查看logstash日志,发现了如下的错误

[2022-04-13T08:39:28,348][INFO ][log] retrying failed action with response code: 429 ({"type"=>"cluster_block_exception", "reason"=>"index [logs-2022.04.12] blocked by: [TOO_MANY_REQUESTS/12/disk usage exceeded flood-stage watermark, index has read-only-allow-delete block];"})
[2022-04-13T08:39:28,348][INFO ][log] retrying failed action with response code: 429 ({"type"=>"cluster_block_exception", "reason"=>"index [logs-2022.04.12] blocked by: [TOO_MANY_REQUESTS/12/disk usage exceeded flood-stage watermark, index has read-only-allow-delete block];"})

措施

通过上网查看,发现不能写入的首要原因是,所以被只读了;于是恢复了,但是半个小时又不行了;
索引去掉只读属性的设置语句如下:

PUT _all/_settings
{
  "index.blocks.read_only_allow_delete": null
}

然后进一步确认原因,得到的说法是,logstash写入到elasticsearch的速度赶不上从数据库读取数据的速度,输出数据阶段未完成的情况下,logstash仍然在不断的、快速的给ES发送bulk reuqest,从而导致ES集群的网络io过载,进而产生以上的问题提示,表明elasticsearch无法继续接收数据。

于是解决方式就是两个方向
一、减小logstash的写入速度


image.png

在进去之后,找到管道设置



在自己的管道中,设置减少消费线程数量,和消费者的数量
image.png

即减慢了es的插入速度,最终es稳定了

除了上面的措施,还进一步规范项目的日志输出,控制无关日志打印,减少日志的输出总量

二、增大es集群的吞吐量
由于资金问题,这个方案没有得到落实

你可能感兴趣的:(es 无日志,logstash failed or were rejected by the previous bulk request)