首页 > 解决方案 > logstash 将所有日志文件放在一个 Elasticsearch 索引中,并在每个日志文件日为 Logstash 配置中的 Elasticsearch 创建一个新索引

问题描述

这是我的日志文件的命名约定,如下所示:

adminPortal-2021-10-10.0.log
adminPortal-2021-10-27.0.log

我需要将它们发布到与日志文件日期匹配的不同索引,但 Elasticsearch 将所有日志文件中的日志发布到一个索引中。

output {
  elasticsearch {
    hosts => ["localhost:9200"]
    index => "admin-%{+YYYY-MM-dd}"
  }
}

标签: elasticsearchlogstash

解决方案


对日期的 sprintf 引用,就像%{+YYYY-MM-dd}总是使用@timestamp 字段的值一样。如果您希望它使用日志条目中的值,您将需要从 [message] 字段中解析时间戳,可能使用 grok,然后使用日期过滤器解析它以覆盖 @timestamp 字段的默认值(这是Time.now)。


推荐阅读