当前位置: 首页 > 面试题库 >

Elasticsearch错误:cluster_block_exception [FORBIDDEN / 12 / index只读/允许删除(api)],超出了洪水阶段磁盘水印

邵刚洁
2023-03-14
问题内容

尝试按正常方式将文档发布到Elasticsearch时,出现此错误:

cluster_block_exception [FORBIDDEN/12/index read-only / allow delete (api)];

我还在Elasticsearch日志上看到此消息:

flood stage disk watermark [95%] exceeded ... all indices on this node will marked read-only

问题答案:

当Elasticsearch认为磁盘空间不足,因此将其置于只读模式时,就会发生这种情况。

默认情况下,Elasticsearch的决定基于可用磁盘空间的 百分比 ,因此在大磁盘上,即使您有许多GB的可用空间,也可能发生这种情况。

泛洪阶段的水印默认为95%,因此在1TB驱动器上,您至少需要50GB的可用空间,否则Elasticsearch会将其自身设置为只读模式。

有关洪水阶段水印的文档,请参阅https://www.elastic.co/guide/en/elasticsearch/reference/6.2/disk-
allocator.html

正确的解决方案取决于上下文-例如生产环境与开发环境。

解决方案1:释放磁盘空间

释放足够的磁盘空间以使超过5%的磁盘可用将解决此问题。但是,一旦有足够的可用磁盘,Elasticsearch不会自动退出只读模式,您必须执行以下操作来解锁索引:

$ curl -XPUT -H "Content-Type: application/json" https://[YOUR_ELASTICSEARCH_ENDPOINT]:9200/_all/_settings -d '{"index.blocks.read_only_allow_delete": null}'

解决方案2:更改洪水阶段水印设置

"cluster.routing.allocation.disk.watermark.flood_stage"设置更改为其他设置。可以将其设置为较低的百分比或绝对值。这是一个如何从docs更改设置的示例:

PUT _cluster/settings
{
  "transient": {
    "cluster.routing.allocation.disk.watermark.low": "100gb",
    "cluster.routing.allocation.disk.watermark.high": "50gb",
    "cluster.routing.allocation.disk.watermark.flood_stage": "10gb",
    "cluster.info.update.interval": "1m"
  }
}

同样,执行完此操作后,您将必须使用上面的curl命令来解锁索引,但是在那之后它们不应再次进入只读模式。



 类似资料:
  • 当尝试像往常一样将文档发布到Elasticsearch时,我遇到了以下错误: 我在Elasticsearch日志中也看到了这条消息:

  • 我在我的开发机器(一个笔记本)中使用Elasticsearch 1.4.4。一切都设置为默认值,因为我从未更改任何设置。 当我启动它时,通常会收到以下信息: 我看到很多这样的“低磁盘水印…超过了…”信息。我的案子出了什么问题?如何修复它?谢谢 使现代化 在这篇文章之前,我搜索了相关的帖子。我发现了一个与“高水位线”有关的在这种情况下,磁盘空间很小。在我的情况下,我检查了一下,我的磁盘上还剩下56G

  • 问题内容: 当我尝试在Elasticsearch中存储任何内容时,出现错误消息: 我已经在索引中插入了大约2亿个文档。但我不知道为什么会发生此错误。我试过了: 结果是: 但是什么都没有改变。我该怎么办? 问题答案: 试试看,这将显示您的索引设置。如果是,请尝试: 我已经解决了问题。 请参阅《es配置指南》以获取更多详细信息。 curl命令是

  • 问题内容: 我在开发机(单个笔记本)中使用Elasticsearch 1.4.4。一切都设置为默认设置,因为我从未更改任何设置。 启动它时,通常会收到以下消息: 我看到很多这样的“磁盘低水印…超出…”消息。我的情况出了什么问题?如何解决?谢谢! 更新 在这篇文章之前,我在SO中搜索了相关的文章。我发现一个与“高水印…”有关的情况,在这种情况下,磁盘空间不足。就我而言,我检查 了磁盘上是否还有56G

  • 我正在运行带有多进程索引的蜘蛛,我想解决这个问题。 我总是收到太多的请求,是否有一个配置可以更改,以允许处理并发请求的阈值更大? 这是全部错误 更新:发现洪水磁盘水印超过,但似乎没有超过! df命令的输出

  • 当我尝试在elasticsearch中存储任何内容时,一个错误显示: 我已经在索引中插入了大约2亿个文档。但我不知道为什么会发生这种错误。我试过: 如前所述:ElasticSearch进入“只读”模式,节点无法更改 结果是: 但是什么都没变。我该怎么办?