背景:单机的ES,已有了大量的生产数据,莫名其妙隔了几天数据丢失,日志显示索引被删除。

原因:索引分片的原因。建立索引时,es默认会分配一个主分片,一个副分片,但按es规定主分片与副分片不应存在在一台服务器上,单机版的这种情况会被视为索引状态有问题,es会自动检测并删除索引。

解决方法:单机es时,修改配置,将副本分片数量设置为0即可。

PUT 127.0.0.1:9200/xxx/_settings
{
    "index": {
        "number_of_replicas": 0
    }
}

后续又出现了自动删除索引的问题,感觉应该是生命周期的问题。参考其他博主(https://blog.csdn.net/weixin_41396863/article/details/132096862)的相同问题设置禁用索引模版:

PUT /_template/disable_ilm
{
  "index_patterns": ["mpi@*"],  //索引开头匹配为mpi@的索引关闭生命周期
  "template": {
    "settings": {
      "index.lifecycle.name": null,  
      "index.lifecycle.rollover_alias": null   
    }
  }
}

我用的是6.8.0,没有_index_template,使用的_template,继续观察。

他娘的又被删除了,这次仔细查看日志,发现被删除索引后,又自动创建了不知道哪里的索引,查看索引内容后,才发现原来是服务被劫持了。

所以服务还是要做好安全措施,设置账号密码,以及公网不要对外暴露。

Logo

纵情码海钱塘涌,杭州开发者创新动! 属于杭州的开发者社区!致力于为杭州地区的开发者提供学习、合作和成长的机会;同时也为企业交流招聘提供舞台!

更多推荐