解决Elasticsearch索引报错问题之Limit of total fields 1000 has been exceeded ...

一、问题描述

在Kibana上查询生产环境的日志时,发现某个关键字一直无法查询到,怀疑想要的日志被丢弃了,遂登录服务器查询原始日志,果然发现日志存在被丢弃的问题。经定位,在Logstash的日志中发现问题所在:

Limit of total fields 1000 has been exceeded while adding new fileds [4]

在这里插入图片描述

二、问题原因

Elasticsearch的Mapping做了映射保护,为了防止索引中错误的内容导致Mappings爆炸,索引中的最大字段数默认值为1000。这里日志中的某一段内容超出了默认字段数的限制,所以导致这一段日志被丢弃,没有存到elasticsearch中,所以在Kibana上无法查到想要的日志。

三、解决办法

登录Kibana,找到Management中的Dev Tools,点击进入:
在这里插入图片描述
查询问题索引的settings,如下:

GET logstash-p_xxx_..._xxx-2022.05.01/_settings

在这里插入图片描述
调整字段的限制:

PUT logstash-p_xxx_..._xxx-2022.05.01/_settings 
{
"index.mapping.total_fields.limit": 3000
}

成功如下所示:

{
  "acknowledged" : true
}

在这里插入图片描述

四、在Kibana上检查

在Kibana上检查问题是否解决,经测试,问题成功解决:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值