[英]Logstash / GROK: Creating a custom Variable when parsing a log file
我是Grok的新手,尽管我设法创建了自定义正则表达式并在logstash配置文件中编写了GROK过滤器。 我的问题如下:
源字段 -我正在解析一个日志文件,其中,每个事件都包含一个“源”字段,该字段是日志文件的名称,例如:
test.YYYYMMDD_HHMMSS.log
我想要做的是 :对于每个事件,“源”包含此文件名,请在Grok过滤器的新字段中以以下格式提取日期和时间:
DD/MM/YYYY HH:MM:SS
我知道如何在GROK中编写自定义的正则表达式(RE),但是我无法编写将匹配数据并将其格式化的RE,然后再将其存储到变量中。 这就是我的问题。
谁能帮忙吗?
非常感谢!
从文件名中提取日期应该可以。 您应该能够使用grok过滤器匹配源字段中的日期部分,并添加一个新字段,如下所示:
filter {
grok {
match => [
"source", "test.%{YEAR:year}%{MONTHNUM2:month}%{DATA:day}_%{HOUR:hour}%{MINUTE:minute}%{SECOND:second}.log"
]
}
mutate { add_field => { "your_new_date_field" => "%{day}/%{month}/%{year} %{hour}:%{minute}:%{second}" } }
}
我目前无法进行测试,但希望您能理解。
该解决方案将创建许多其他字段,例如年,月,日等。 如果要摆脱其他字段,可以使用元数据字段 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.