我有一些旧的日志文件(每天一个文件)。 登录2017.09.01.json 登录2017.09.02.json 等
json文件中没有日期信息。
默认情况下,索引的时间戳是创建索引的日期。
我正在尝试为每个日志文件创建一个索引,我希望每个日志文件对应的索引的时间戳与文件名定义的索引的时间戳相同。 即,我想要一个索引" log-2017.09.01"其时间戳为2017.09.01,另一个索引为" log-2017.09.02"时间戳为2017.09.02
有谁知道如何简单地做到这一点?
答案 0 :(得分:0)
这里不简单,但可以做到。它需要几个步骤。
第一步,从文件路径中获取日期。
filter {
grok {
match => { "path", "^log-%{DATA:date_partial}$" }
}
}
第二步是从日志行中提取时间戳数据。我假设你知道怎么做。
第三步是从部分组装日期字段。
filter {
mutate {
add_field => { "full_timestamp", "%{date_partial} %{date_hour}:%{date_minute}" }
}
}
最后一步是在该构造字段上使用date{}
过滤器。
filter {
date {
match => [ "full_timestamp", "yyyy.MM.dd HH:mm" ]
}
}
这可以让您了解所需的技术。