logstash 将所有日志文件放在一个 Elasticsearch 索引中,并在 Logstash 配置中为 Elasticsearch 每个日志文件日创建一个新索引

logstash put all log files in one Elasticsearch index and create a new index per each log file day for Elasticsearch in Logstash configuration

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

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

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

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

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