ElasticSearch进入"只读"模式,节点无法更改

Orz*_*Orz 7 elasticsearch kibana elasticsearch-indices kibana-4

夜间发生了一些事情,我的ES集群(由5个数据节点,3个主节点组成).

说实话,我不知道发生了什么,但所有索引和数据都被删除,群集进入"只读"模式,可能被黑了?

当试图让Kiban运行时,我得到以下内容: kibana

试图重新启动kibana - 它重新启动,没有任何改变.尝试重新启动Elastic - 它重新启动(所有节点),没有任何改变.

然后我看了一下群集设置,这就是我得到的:

{
  "persistent": {
    "cluster": {
      "routing": {
        "allocation": {
          "enable": "all"
        }
      },
      "blocks": {
        "read_only": "true"
      }
    }
  },
  "transient": {
    "cluster": {
      "routing": {
        "allocation": {
          "enable": "all"
        }
      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

我尝试撤消只读如下:

PUT _cluster/settings
{
  "persistent": {
    "blocks.read_only": false
  }
}
Run Code Online (Sandbox Code Playgroud)

没有运气,你可以看到:

{
  "error": {
    "root_cause": [
      {
        "type": "cluster_block_exception",
        "reason": "blocked by: [FORBIDDEN/6/cluster read-only (api)];"
      }
    ],
    "type": "cluster_block_exception",
    "reason": "blocked by: [FORBIDDEN/6/cluster read-only (api)];"
  },
  "status": 403
}
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

更新:Andrei Stefan解决了问题,现在是更重要的部分 - 为什么? 发生了什么,为什么?我丢失了所有数据,我的群集进入了只读模式.

And*_*fan 9

正确的命令是:

PUT /_cluster/settings
{
  "persistent" : {
    "cluster.blocks.read_only" : false
  }
}
Run Code Online (Sandbox Code Playgroud)


小智 5

事实证明,ES对可用磁盘空间有一些阈值,并且在命中“ flood”时,它会将索引设置为只读模式。

为了将其重新设置(已通过ES6测试),您需要执行以下操作:

PUT /[index_name]/_settings
{
  "index.blocks.read_only_allow_delete": null
}
Run Code Online (Sandbox Code Playgroud)

可以在文档的以下页面上找到更多信息:https : //www.elastic.co/guide/en/elasticsearch/reference/current/disk-allocator.html

  • 感谢,一次性重置所有索引可以发出如下命令: `curl -X PUT "localhost:9200/*/_settings" -H 'Content-Type: application/json' -d'{"index.blocks.read_only_allow_delete" : 空}'` (2认同)