禁止elasticsearch自动建立index与mapping

今早同事开发时遇到一个诡异的ES问题,发现一个新建的mapping总是与自己设置的不一样。

由于我们使用的是alias的方式来维护index的,每次更新alias指向到新库时总是报错误:已存在一个与alias同名的Index。

经过一顿研究发现,原来是因为一直有一个后台脚本在向alias灌数据,而灌数据之前尚未执行过过alias指向操作,导致ES自动创建了与alias同名的index与mapping,所以才出现上述问题。

排查过程用到了2个指令,

1,查看ES里有哪些索引:

curl ‘zfilter_es-search-01:9200/_cat/indices?v’

2,查看ES里有哪些别名:

curl ‘zfilter_es-search-01:9200/_cat/aliases?v’

排查中发现,我们手动删除与alias同名的index,过一会又自己出现了,导致我们建立alias非常困难(报错存在与alias同名的index)。

建议线上环境在部署ES时禁止自动创建index与mapping,避免出现类似的隐患(相关文档):

 

如果文章帮助您解决了工作难题,您可以帮我点击屏幕上的任意广告,或者赞助少量费用来支持我的持续创作,谢谢~