在我的ES群集中发生了一些事情(由5个数据节点,3个主节点组成)。
说实话,我不知道发生了什么,但所有索引和数据都被删除了,群集进入“只读”模式,可能被黑了?
尝试重新启动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解决了问题,现在是更重要的部分 - 为什么? 发生了什么,为什么? 我丢失了所有数据,我的群集进入了只读模式。
答案 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
}
}