推荐阅读

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 的激增,从而引起内存的错误和难以恢复的情况。所以解决这个问题的方式有两个:

  1. 需要业务开发人员精简字段数,控制在 1000 以下
  2. 调整默认字段数限制

这里使用第二种方式来解决这个问题,在 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 引发的报错相关推荐

  1. NULL 指针在不同平台下的表现引发程序报错(C 语言)

    NULL 指针在不同平台下的表现引发程序报错(C 语言) 为什么有这篇 正文 1. 使用环境 2.问题描述及展示 3. 走了些弯路 4. 柳岸花明(GDB 调试) 5. 访问 NULL 指针错误背后的 ...

  2. 因OpenCV版本不一致所引发的报错

    目录 一 因OpenCV版本不一致所引发的报错 注:原创不易,转载请务必注明原作者和出处,感谢支持! 一 因OpenCV版本不一致所引发的报错 今天遇到了一个很有意思的报错. 事情是这样的, 在编译& ...

  3. JavaScript超出数组长度不报错

    JavaScript超出数组长度不报错 今天,在做题的时候,遇到了这样一个问题 while (sum < target) {right++;sum += nums[right]; } 这里whi ...

  4. MySQL字段名诸如key的报错问题

    有时候我们会发现, 明明sql语句是正确的, 但哪怕是最简单的insert 和 select 语句都会报错. 其实有可能是字段名/表名/库名与MySQL的关键字/保留字发生了冲突的问题 这时候有两种解 ...

  5. ful join关联字段都含null值报错

    今天在测试full join的时候意外发现一个报错 with t1 as (select null as col1,null as col2,null as col3 ) ,t2 as (select ...

  6. oracle连接满报错日志,Oracle归档日志满了导致Oracle连接(ORA-00257)报错处理

    最近一段时间,有收到一台Oracle服务器的连接告警, 刚刚开始还以为是Oracle的监听被关闭导致,结果连上服务器看下Oracle的监听进程正常,自己连接一次发现有报ORA-00257错,又去监控系 ...

  7. 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 ...

  8. 解决:Unknown column ‘字段名‘ in ‘field list‘报错

    问题描述: 解决方案: 检查实体类的字段名和数据库的字段名是否一致,如下示例,显然是不一致导致的 因此将数据库字段名修改与实体类一致即可,也可以修改实体类的字段名,哪个方便修改哪个.

  9. 从 varchar 数据类型到 datetime 数据类型的转换产生一个超出范围的值报错处理?

    应该是varchar里面的时间范围超出了datetime类型的范围,建议使用baidatetime2,. 背景知识: SQL Server 2008除了DateTime和SmallDateTime之外 ...

最新文章

  1. linux非root安装go,linux – go install总是使用GOROOT / bin而不是GOPATH
  2. 关于要不要买apple watch 的思考:节俭是一种习惯
  3. QT 定时器与动画实现
  4. 互联网1分钟 | 0914
  5. 调用webservice超时问题的解决
  6. 群辉挂载linux nfs,Debian 9 挂载访问已设置的群晖NFS共享文件目录
  7. 图片服务 - thumbor用法
  8. Registry学习资料
  9. Ubuntu18.04安装gcc——史上最全安装教程
  10. 在xp中运行 .air 文件--Adobe AIR Runtime for Window
  11. 计算机学院少女节条幅,女生节条幅大战又打响了!哪个高校条幅标语最撩人 网友酸了...
  12. 【python基础】h5py库的基本使用
  13. java svn 创建分支_Eclipse下svn的创建分支/合并/切换使用
  14. 用python输出圣诞树_教你怎样用Python画了一棵圣诞树,赶紧来学习
  15. 为什么程序员不缺网?三步教你破解WiFi密码,够简单!
  16. 微信头像更新了,有你喜欢的吗?
  17. 怎样有效的将电脑中WPS文件转换成Excel格式
  18. os.chdir()
  19. 华为智慧屏和鸿蒙系统对比,华为智慧屏s55和v55区别-华为智慧屏s55和v55对比
  20. css超级无敌不会,一大堆疑问大全

热门文章

  1. ACM程序设计基础(2)题解
  2. CCF NOI1089 高精度运算
  3. NOI训练行动路线图
  4. HDU2024 C语言合法标识符【入门】
  5. B00012 C++算法库的sort()函数
  6. 古文(诗词文)—— 结构模式与复用
  7. windows 常见环境变量(%AppData%、%TEMP%、%TMP%)
  8. Python 三目运算符(三分支)
  9. Tricks(三十四)—— 判断某一属性列是数值型还是标称型
  10. 假设检验——抽样调查的结论依赖于样本量的大小