Elasticsearch - Logstash Grok 新字段日期格式是字符串而不是日期

问题描述 投票:0回答:1

我有一个场景,Logstash 使用 grok 将消息拆分为不同的字段。其中一个字段是 message_date 字段,该字段被提取并发送到 elasticsearch。

现在 Elasticsearch/Kibana 中的类型是字符串而不是日期。索引映射正在设置“动态”:true。

消息中的字符串看起来像这样 yyyy-MM-dd HH:mm:ss,SSS 表示日期,而 grok 过滤器是

格洛克{ 匹配=> {“消息”=> ['%{TIMESTAMP_ISO8601:message_date} %{GREEDYDATA:egMessage}'] } }

我需要找到一种方法将 Elasticsearch 中的类型更改为字符串或 Logstash 中的最后一种情况。

elasticsearch logstash kibana logstash-grok elk
1个回答
0
投票

默认情况下,Elasticsearch 端启用日期检测。 自动识别的默认模式是

"dynamic_date_formats": [ "strict_date_optional_time","yyyy/MM/dd HH:mm:ss Z||yyyy/MM/dd Z"]
您现在有两个选择:

A.您可以修改 Logstash 配置,将日期值转换为受支持的格式之一

B.您可以在创建索引时修改

dynamic_date_formats

 以包含您的特定日期格式:

PUT <your-index> { "mappings": { "dynamic_date_formats": [ "strict_date_optional_time", "yyyy/MM/dd HH:mm:ss Z||yyyy/MM/dd Z", "yyyy-MM-dd HH:mm:ss,SSS" ] } }
最后一个日期模式将识别您的日期格式,并且将创建一个 

date

 字段,而不是 
text
 一个

© www.soinside.com 2019 - 2024. All rights reserved.