elasticsearch 日志存储日期筛选器无法将字段转换为日期类型,elasticsearch,logstash,logstash-configuration,elasticsearch,Logstash,Logstash Configuration" /> elasticsearch 日志存储日期筛选器无法将字段转换为日期类型,elasticsearch,logstash,logstash-configuration,elasticsearch,Logstash,Logstash Configuration" />

elasticsearch 日志存储日期筛选器无法将字段转换为日期类型

elasticsearch 日志存储日期筛选器无法将字段转换为日期类型,elasticsearch,logstash,logstash-configuration,elasticsearch,Logstash,Logstash Configuration,我在使用日期过滤器将文本字段转换为日期时遇到问题。以下是我正在使用的日志存储代码: grok { patterns_dir => ["/etc/logstash/conf.d/patterns"] match => { "message" => "%{TIMESTAMP_DD_MM_YYYY:start_date}%{SPACE}%{TIME:zimbra_proc_start_time}%{SPACE}%{SPACE}%{LOGLEVEL:log

我在使用日期过滤器将文本字段转换为日期时遇到问题。以下是我正在使用的日志存储代码:

grok {
       patterns_dir => ["/etc/logstash/conf.d/patterns"]
        match => { "message" => "%{TIMESTAMP_DD_MM_YYYY:start_date}%{SPACE}%{TIME:zimbra_proc_start_time}%{SPACE}%{SPACE}%{LOGLEVEL:log_level}%{DATA}%{DAY:day}%{SPACE}%{GREEDYDATA}\n%{DATA}\n%{DATA}\n%{TIMESTAMP_DD_MM_YYYY:end_date}%{SPACE}%{TIME:zimbra_proc_end_time}" }
    }

    mutate {
      add_field => {
        "end_date_parse" => "%{end_date} %{zimbra_proc_end_time}"
        "start_date_parse" => "%{start_date} %{zimbra_proc_start_time}"
      }
    }

    date {
      match => [ "start_date_parse", "HH:mm:ss", "yyyy-MM-dd'T'HH:mm:ss.SSS", "dd MMM yyyy'T'HH:mm:ss.SSS", "dd MMM yyyy HH:mm:ss", "d MMM yyyy HH:mm:ss" ]
      target => "zimbra_proc_start_time"
    }

    date {
      match => [ "end_date_parse", "yyyy-MM-dd'T'HH:mm:ss.SSS", "HH:mm:ss", "dd MMM yyyy'T'HH:mm:ss.SSS", "dd MMM yyyy HH:mm:ss", "d MMM yyyy HH:mm:ss" ]
      target => "zimbra_proc_end_time"
    }

    mutate {
      remove_field => "end_date_parse"
      remove_field => "start_date_parse"
    }

而且,我们看不到任何“grokparsefailure”或“dateparsefailure”。因此,日期被正确解析,但类型仍然在ES中作为关键字报告。

这可能是elasticsearch端的映射问题:在ES中,字段
zimbra\u proc\u***\u time
已经映射为关键字。@baudsp我如何解决这个问题?目前,我正在手动在新索引中设置所需的日期类型,然后重新编制旧日志的索引,该日志将此作为关键字报告,然后删除旧索引。这绝对不是一个好的解决方案。您必须在elasticsearch中创建一个新模板,并在elasticsearch输出中指定它。要创建它:请参见。然后在elasticsearch输出中指定索引时,从模板中选择一个与模式匹配的名称。但我已经有一段时间没有这样做了,所以您应该查看文档,看看我是否编写了错误。