我是logstash和grok的新手,对模式有疑问。
Jul 26 09:46:37
以上内容包含%{MONTH} %{MONTHDAY} %{TIME}
和空格。
我需要知道如何组合所有这些并创建模式%{sample_timestamp}
谢谢!
答案 0 :(得分:2)
来自Grok Custom Patterns Docs(RTFM)的引言:
首先,您可以使用Oniguruma语法进行命名捕获 让你匹配一段文字并将其保存为一个字段:
(?<field_name>the pattern here)
...
或者,您可以创建自定义模式文件。
- 创建一个名为patterns的目录,其中包含一个名为extra的文件(文件名无关紧要,但为自己命名有意义)
- 在该文件中,将您需要的模式写为模式名称,空格,然后是该模式的正则表达式。
因此,您可以创建包含以下行的模式文件:
CUST_DATE %{MONTH} %{MONTHDAY} %{TIME}
然后使用此插件中的patterns_dir设置来告诉logstash 自定义模式目录所在的位置。
filter {
grok {
patterns_dir => ["./patterns"]
match => { "message" => "%{CUST_DATE:datestamp}" }
}
}
会导致该字段:
datestamp => "Jul 26 09:46:37"
答案 1 :(得分:0)
使用 pattern_definitions 定义模式
filter {
grok {
pattern_definitions => { "MY_DATE" => "%{MONTH} %{MONTHDAY} %{TIME}" }
match => { "message" => "%{MY_DATE:timestamp}" }
}
}
{
"timestamp": "Jul 26 09:46:37"
}
使用Logstash 6.5测试