问题描述
历史原因,ELK
原索引使用了动态映射。
客户端日志打点数据模型未约定,多端打点的同一个字段使用了不同的数据类型,进而导致打点数据在提交到 ES 时,因为索引字段不同导致提交索引失败部分日志丢失。
eg.
iOS - ext.query => text
WeApp - ext.query => object
WeApp 的 ext.query
字段在 ELK 只需存储,无需支持检索、聚合。
解决思路
思路是在 logstash-filter-plugin
中找到可以把指定字段转换为 String
的方式。
检索了搜索引擎,但并没有找到比较合适的方式。
用万能的 ruby 吧: