我已经搜索了很长时间,并被定向到同一页面。我正在尝试为自定义日志编写grok模式。例如,下面是一条日志行:
2020/01/02 08:40:16 UUID: 5E82093B:7550_B0092619:01BB_5E0DAC6F_33A27FC:05AD - URL: https://endpoint.point/path/to/api 0.011636824 elapsed(s)
现在,我的全部或大部分搜索都将我带到this链接。但是我不明白它或如何使用它。是否有使用简单英语的教程来确切解释每个定义的模式将呈现哪种数据类型。就像我不明白NOTSPACE
代表什么或GREEDYDATA
代表什么等等。我无法从上面的日志中找到如何查看此5E82093B:7550_B0092619:01BB_5E0DAC6F_33A27FC:05AD
的信息。请帮助我寻找可以学习编写正确的grok模式的地方。
P.S。我知道grok调试器(this)。我用它写了下面的模式。只是想告诉我我在哪里。
%{IPORHOST:clientip} - %{DATA:somedata} \[%{HTTPDATE:timestamp}\] "%{WORD:verb} %{URIPATH:request} HTTP/(?<httpversion>[0-9.]*)" %{NUMBER:response_code} %{NUMBER:bytes_transferred} %{DATA:referrer} "%{DATA:agent_info}"rt=%{NUMBER:request_time} uct="%{NUMBER:upstream_connect_time}" uht="%{NUMBER:upstream_header_time}" urt="%{NUMBER:upstream_response_time}"
我也有具体问题。请回答,因为它们会有所帮助:
提及link包含匹配的grok模式和相应的正则表达式。因此,通过查看给定的正则表达式模式,您可以了解一下。
例如,GREEDYDATA =。*表示GREEDYDATA数据类型可以容纳任意数量的字符。
例如样本UUID的日志行
UUID:adff19e7-4c78-4bc1-b8bd-ba6284ac191f
Grok模式
UUID:%{UUID:uuid}
{
"uuid": [
[
"adff19e7-4c78-4bc1-b8bd-ba6284ac191f"
]
]
}
根据您的情况,您可以使用GREEDYDATA类型。
2020/01/02 08:40:16 UUID: 5E82093B:7550_B0092619:01BB_5E0DAC6F_33A27FC:05AD - URL: https://endpoint.point/path/to/api 0.011636824 elapsed(s)
UUID:\s*%{GREEDYDATA:uuid} - URL:\s*%{GREEDYDATA:theRest}
{
"uuid": [
[
"5E82093B:7550_B0092619:01BB_5E0DAC6F_33A27FC:05AD"
]
],
"theRest": [
[
"https://endpoint.point/path/to/api 0.011636824 elapsed(s)"
]
]
}