我在kubernetes上有一个Elasticsearch集群setup。最近,logstash无法将任何数据推入群集,因为群集中的一个节点磁盘空间不足。
这是logstash中的错误
[Ruby-0-Thread-13@[main]>worker1: /usr/share/logstash/logstash-core/lib/logstash/pipeline.rb:383] elasticsearch - retrying failed action with response code: 403 ({"type"=>"cluster_block_exception", "reason"=>"blocked by: [FORBIDDEN/12/index read-only / allow delete (api)];"})
es-master将节点标记为只读,因为可用磁盘空间超过阈值
[WARN ][o.e.c.r.a.DiskThresholdMonitor] [es-master-65ccf55794-pm4xz] flood stage disk watermark [95%] exceeded on [SaRCGuyyTBOxTjNtvjui-g][es-data-1][/data/data/nodes/0] free: 9.1gb[2%], all indices on this node will be marked read-only
在此之后,我释放了该节点上的资源,现在它具有足够的可用空间(几乎50%)。但是logstash仍然无法将数据推送到弹性搜索中,并且正在记录上面的相同错误。
我有以下问题
答案 0 :(得分:3)
您必须手动重置索引上的只读块。
您可以在cluster.routing.allocation.disk.watermark.flood_stage
块中查看文档here
一旦有足够的磁盘,必须手动释放索引块 可用于继续进行索引操作的空间。
PUT /<your index name>/_settings
{
"index.blocks.read_only_allow_delete": null
}