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

时间:2016-08-03 05:58:14

标签: elasticsearch kibana kibana-4 elasticsearch-indices

在我的ES群集中​​发生了一些事情(由5个数据节点,3个主节点组成)。

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

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

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

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

{
  "persistent": {
    "cluster": {
      "routing": {
        "allocation": {
          "enable": "all"
        }
      },
      "blocks": {
        "read_only": "true"
      }
    }
  },
  "transient": {
    "cluster": {
      "routing": {
        "allocation": {
          "enable": "all"
        }
      }
    }
  }
}

我尝试按如下方式撤消只读:

PUT _cluster/settings
{
  "persistent": {
    "blocks.read_only": false
  }
}

没有运气,你可以看到:

{
  "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
}

有什么想法吗?

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

2 个答案:

答案 0 :(得分:4)

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

要重新设置它(经过ES6测试),您需要执行以下操作:

PUT /[index_name]/_settings
{
  "index.blocks.read_only_allow_delete": null
}

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

答案 1 :(得分:3)

正确的命令是:

PUT /_cluster/settings
{
  "persistent" : {
    "cluster.blocks.read_only" : false
  }
}