一、在线调试
[2020-09-26 08:34:41] 127.0.0.1 GET local.test.com:8010/index/index/test?name=张三&id=9 0.412191
[ info ] 信息异常
- 正则
[\s\S]*\]\s(?<client_ip>[0-9\.]+)\s(?<method>[A-Za-z]+)\s(?<url>[^\s]+)\s(?<duration>[0-9\.]+)[\s\S]*
- 结果
{
"client_ip": [
[
"127.0.0.1"
]
],
"method": [
[
"GET"
]
],
"url": [
[
"local.test.com:8010/index/index/test?name=张三&id=9"
]
],
"duration": [
[
"0.412191"
]
]
}
- 截图
二、kibana 中调试
如果你安装了 kibana
,也可以在 kibana
中调试
-
kibana首页
->Console
-
选择
Grok Debugger
三、匹配方式
1)、自定义正则
- 匹配内容
[2020-09-26 08:34:41] 127.0.0.1 GET local.test.com:8010/index/index/test?name=张三&id=9 0.412191
- 匹配正则
[\s\S]*\]\s(?<client_ip>[0-9\.]+)\s(?<method>[A-Za-z]+)\s(?<url>[^\s]+)\s(?<duration>[0-9\.]+)[\s\S]*
2)、logstash自带的grok
[2020-09-26 13:07:54] GET http://www.test.com/index/index/test 0.118220
- 匹配正则
\[%{
TIMESTAMP_ISO8601:timestamp}\] %{
USERNAME:method}
3)、logstash自带的grok + 自定义正则 custom patterns
大家注意了:grok调试支持custom patterns
(自定义正则)调试
可以参考一下这篇:ELK logstash的grok 自带的正则匹配、自定义正则 使用
- 匹配内容
[2020-09-26 13:07:54] GET http://www.test.com/index/index/test 0.118220
- 匹配正则
\[%{
TIMESTAMP_ISO8601:timestamp}\] %{
USERNAME:method}[T ]%{
URL:url} %{
NUMBER:exec_time}
- 自定义正则
URL
URL (http(s)?:\/\/)?%{
URIHOST:domain_name}%{
URIPATH}