ES 处理日志字段超出 1000 引发的报错
推荐阅读
Helm3(K8S 资源对象管理工具)视频教程:https://edu.csdn.net/course/detail/32506
Helm3(K8S 资源对象管理工具)博客专栏:https://blog.csdn.net/xzk9381/category_10895812.html
本文原文链接:https://blog.csdn.net/xzk9381/article/details/114630302,转载请注明出处。如有发现文章中的任何问题,欢迎评论区留言。
ES 集群的日志记录中经常会发现如下报错信息:
[2021-02-04T22:40:06,673][DEBUG][o.e.a.a.i.m.p.TransportPutMappingAction] [m-7416] failed to put mappings on indices [[[nginx-server-log-000022/dQLTO5UGQKOUVRn2FnS3Zw]]], type [_doc]
java.lang.IllegalArgumentException: Limit of total fields [1000] in index [nginx-log-000022] has been exceeded
其中的关键报错信息是 Limit of total fields [1000] in index [nginx-server-log-000022] has been exceeded
,触发这个报错的原因是由于该日志是 JSON 类型,而 ES 默认 JSON 类型日志 index 的最大字段长度为 1000,但是当前业务的日志中很多都超过了 1000 个字段。
之所以默认最大 1000 个字段,是因为索引中定义太多的字段可能会导致 mapping 的激增,从而引起内存的错误和难以恢复的情况。所以解决这个问题的方式有两个:
- 需要业务开发人员精简字段数,控制在 1000 以下
- 调整默认字段数限制
这里使用第二种方式来解决这个问题,在 Kibana 中执行如下命令可以为指定索引修改限制:
PUT nginx-server-log/_settings
{"index.mapping.total_fields.limit": 2000
}
也可以为所有的索引都修改配置:
PUT _all/_settings
{"index.mapping.total_fields.limit": 2000
}
在创建索引的时候也可以直接指定配置,避免后续再进行修改:
PUT _template/ngx-server
{"index_patterns": ["ngx-server-*"],"settings": {"number_of_shards": 15,"number_of_replicas": 1,"index.lifecycle.name": "ngx-api-normal","index.lifecycle.rollover_alias": "ngx-server","index.mapping.total_fields.limit": 2000}
}
本文原文链接:https://blog.csdn.net/xzk9381/article/details/114630302,转载请注明出处。如有发现文章中的任何问题,欢迎评论区留言。
ES 处理日志字段超出 1000 引发的报错相关推荐
- NULL 指针在不同平台下的表现引发程序报错(C 语言)
NULL 指针在不同平台下的表现引发程序报错(C 语言) 为什么有这篇 正文 1. 使用环境 2.问题描述及展示 3. 走了些弯路 4. 柳岸花明(GDB 调试) 5. 访问 NULL 指针错误背后的 ...
- 因OpenCV版本不一致所引发的报错
目录 一 因OpenCV版本不一致所引发的报错 注:原创不易,转载请务必注明原作者和出处,感谢支持! 一 因OpenCV版本不一致所引发的报错 今天遇到了一个很有意思的报错. 事情是这样的, 在编译& ...
- JavaScript超出数组长度不报错
JavaScript超出数组长度不报错 今天,在做题的时候,遇到了这样一个问题 while (sum < target) {right++;sum += nums[right]; } 这里whi ...
- MySQL字段名诸如key的报错问题
有时候我们会发现, 明明sql语句是正确的, 但哪怕是最简单的insert 和 select 语句都会报错. 其实有可能是字段名/表名/库名与MySQL的关键字/保留字发生了冲突的问题 这时候有两种解 ...
- ful join关联字段都含null值报错
今天在测试full join的时候意外发现一个报错 with t1 as (select null as col1,null as col2,null as col3 ) ,t2 as (select ...
- oracle连接满报错日志,Oracle归档日志满了导致Oracle连接(ORA-00257)报错处理
最近一段时间,有收到一台Oracle服务器的连接告警, 刚刚开始还以为是Oracle的监听被关闭导致,结果连上服务器看下Oracle的监听进程正常,自己连接一次发现有报ORA-00257错,又去监控系 ...
- linux 硬盘报错日志,Linux内核I/O系统报错日志与硬盘故障对应关系
日志信息 故障现象描述 与硬盘关系 scsi1: ERROR on channel 0, id 7, lun 0, CDB: Read (10) 00 73 fc 62 bf 00 00 80 00 ...
- 解决:Unknown column ‘字段名‘ in ‘field list‘报错
问题描述: 解决方案: 检查实体类的字段名和数据库的字段名是否一致,如下示例,显然是不一致导致的 因此将数据库字段名修改与实体类一致即可,也可以修改实体类的字段名,哪个方便修改哪个.
- 从 varchar 数据类型到 datetime 数据类型的转换产生一个超出范围的值报错处理?
应该是varchar里面的时间范围超出了datetime类型的范围,建议使用baidatetime2,. 背景知识: SQL Server 2008除了DateTime和SmallDateTime之外 ...
最新文章
- linux非root安装go,linux – go install总是使用GOROOT / bin而不是GOPATH
- 关于要不要买apple watch 的思考:节俭是一种习惯
- QT 定时器与动画实现
- 互联网1分钟 | 0914
- 调用webservice超时问题的解决
- 群辉挂载linux nfs,Debian 9 挂载访问已设置的群晖NFS共享文件目录
- 图片服务 - thumbor用法
- Registry学习资料
- Ubuntu18.04安装gcc——史上最全安装教程
- 在xp中运行 .air 文件--Adobe AIR Runtime for Window
- 计算机学院少女节条幅,女生节条幅大战又打响了!哪个高校条幅标语最撩人 网友酸了...
- 【python基础】h5py库的基本使用
- java svn 创建分支_Eclipse下svn的创建分支/合并/切换使用
- 用python输出圣诞树_教你怎样用Python画了一棵圣诞树,赶紧来学习
- 为什么程序员不缺网?三步教你破解WiFi密码,够简单!
- 微信头像更新了,有你喜欢的吗?
- 怎样有效的将电脑中WPS文件转换成Excel格式
- os.chdir()
- 华为智慧屏和鸿蒙系统对比,华为智慧屏s55和v55区别-华为智慧屏s55和v55对比
- css超级无敌不会,一大堆疑问大全