禁止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,避免出现类似的隐患(相关文档):
1 2 |
action.auto_create_index: false index.mapper.dynamic: false |
如果文章帮助您解决了工作难题,您可以帮我点击屏幕上的任意广告,或者赞助少量费用来支持我的持续创作,谢谢~
