我有一堆日志文件名为' XXXXXX_XX_yymmdd_hh:mm:ss.txt' - 我需要在添加到Logstash的字段中包含文件名中的日期和时间(单独的字段)。
有人可以帮忙吗?
由于
答案 0 :(得分:2)
使用grok filter提取日期和时间:
filter {
grok {
match => [
"path",
"^%{GREEDYDATA}/[^/]+_%{INT:date}_%{TIME:time}\.txt$"
]
}
}
根据内容而不是XXXXXX_XX,您可能更喜欢更严格的表达方式。此外,GREEDYDATA也不是非常有效。这可能会产生更好的性能:
filter {
grok {
match => [
"path", "^(?:/[^/]+)+/[^/]+_%{INT:date}_%{TIME:time}\.txt$"
]
}
}