You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Logstash CSV输入日期解析错误求助:@timestamp不匹配ES索引格式

解决Logstash日期字段不符合Elasticsearch索引格式的问题

问题根源

你的输入日期为2024-01-09 22:21:04,Logstash的date过滤器处理后生成的@timestamp会包含纳秒(如2024-01-09T22:21:04.567414642Z),但你的Elasticsearch索引仅允许两种日期格式:

  • yyyy-MM-dd HH:mm:ss
  • yyyy-MM-dd'T'HH:mm:ss.SSS'Z'
    带纳秒的格式不在允许范围内,因此触发400解析错误。

解决方案

在Logstash的filter环节,通过Ruby过滤器手动将@timestamp格式化为符合索引要求的格式,以下是两种可行配置:

方案1:格式化为带三位毫秒的ISO格式(匹配索引要求的第二种格式)

在现有date过滤器后添加Ruby过滤器:

ruby {
  code => "event.set('@timestamp', event.get('@timestamp').to_time.strftime('%Y-%m-%dT%H:%M:%S.000Z'))"
}

该配置会将日期统一格式化为2024-01-09T22:21:04.000Z,完全符合索引的yyyy-MM-dd'T'HH:mm:ss.SSS'Z'规则。

方案2:格式化为无毫秒的标准格式(匹配索引要求的第一种格式)

如果需要使用yyyy-MM-dd HH:mm:ss格式,可改用以下Ruby配置:

ruby {
  code => "event.set('@timestamp', event.get('@timestamp').to_time.strftime('%Y-%m-%d %H:%M:%S'))"
}

修改后的完整filter配置示例

filter {
  csv {
    skip_empty_rows => "true"
    separator => ","
    columns => ['elastic_index_id', 'elastic_index_created_date', 'cart_received_timestamp', 'cart_item_id', 'cart_item_quantity', 'cart_item_description', 'cart_item_unit_price', 'cart_item_currency']
    convert => {
      "cart_item_received_timestamp" => "date_time"
      "cart_item_updated_timestamp" => "date_time"
      "cart_received_timestamp" => "date_time"
      "elastic_index_created_date" => "date_time"
      "session_timestamp" => "date_time"
    }
  }
  date {
    match => ["cart_received_timestamp", "yyyy-MM-dd HH:mm:ss", "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"]
    target => "@timestamp"
  }
  # 添加Ruby过滤器格式化日期
  ruby {
    code => "event.set('@timestamp', event.get('@timestamp').to_time.strftime('%Y-%m-%dT%H:%M:%S.000Z'))"
  }
  mutate {
    remove_field => [["event"], "[type]", "[host]", "[message]", "[log]"]
  }
}

额外说明

  • 不建议修改Elasticsearch索引的日期格式(除非权限允许且无业务风险),因为你提到索引设置有严格校验。
  • 之前尝试的ISO8601格式匹配和convert转date_time无法解决问题,是因为Logstash内部的日期对象默认会保留纳秒精度,必须手动格式化截断。

内容的提问来源于stack exchange,提问作者Jason Gregory

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 08:50:33