居然是你

elasticsearch拆分索引

Elasticsearch | 作者 Payne | 发布于2020年11月25日 | 阅读数:1265

请教各位大佬一个问题,我们公司将每个应用的日志都存在一个索引里面,其中包含Error、Info、Debug等日志,每天会产生一个索引。由于现在应用接入的越来越多,每天的索引量越来越大,我们现在想将单索引根据日志级别拆分为多个索引。例如 error_202011_25、info_202011_25.。请问一下各位大佬有没有什么好的思路和解决方案
已邀请:

envy666

赞同来自: Payne

日志写入ES是你们是使用了统一的中间件还是各个应用自己写入的?
如果有统一的入口的话,直接在入口的地方控制一下逻辑就行了,
如果是各应用随便写,又不想大改的话,可以根据日志级别字段做ROUTE,
虽然ROUTE后还是单索引,但是实现的效果和索引拆分是一样的,但无论怎么做,
已存在的尚未过期的老索引都需要REINDEX一次

w_b

赞同来自:

reindex + query ?

zmc - ES PAAS、JuiceFS

赞同来自:

这个合理的做法应该是在ES的上层做;
如果要拆老的索引,貌似只能根据老数据写成新的index,再清理老index;

cap_ljf

赞同来自:

解决方案:
对存量数据处理:按日志级别新建索引,例:error_20201126_log、info_20201126_log。reindex旧索引数据到新索引的时候对日志级别进行过滤
对增量数据处理:写入es层进行改造。对日志级别做判断,写入不同的索引。
建议:按日志区分索引不合理,error日志量对比info日志量应该占很小比例,按日志级别拆效果不好。多个应用日志最好写入不同的日志索引里。如果需要跨多个索引搜索根据语法选择多个索引即可。
 

要回复问题请先登录注册