来自其他字段的 Logstash 新字段与正则表达式
Logstash new field from other field with regex
来自字符串
""message" => "27.03.2018 07:53:39 [ERROR] at MyApp.Controllers.Controller.OnException: \nMessage: Controller exception!\nUser: TestUser \nHost: MyLaptop\n\nSystem.Exception: Testing\n at MyApp.Controllers.DoController.Do() in C:\Users\User\Source\Controllers\DoController.cs:line 20\n at lambda_method(Closure , ControllerBase , Object[] )\n at System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext, IDictionary`2 parameters)\n""
我正在尝试匹配“\n User \n”并将其放入名为 User 的新字段中。使用 gsub 我可以使用以下 conf 很好地改变它:
mutate {
gsub => [
"message", "[\n]^User.*\n", "changed"
]
}
但是将其放入 grok 会导致 grokparsefailure。我如何在 grok 中使用它?
我最后得到:
grok {
match => {
"message" => "User:%{GREEDYDATA:user}\n"
}
}
这似乎匹配 "User:"
和 "\n"
之间的所有内容
给你,
User:%{SPACE}%{WORD:user}
这将使用用户名
创建一个新字段 user
{
"SPACE": [
[
" "
]
],
"user": [
[
"TestUser"
]
]
}
来自字符串
""message" => "27.03.2018 07:53:39 [ERROR] at MyApp.Controllers.Controller.OnException: \nMessage: Controller exception!\nUser: TestUser \nHost: MyLaptop\n\nSystem.Exception: Testing\n at MyApp.Controllers.DoController.Do() in C:\Users\User\Source\Controllers\DoController.cs:line 20\n at lambda_method(Closure , ControllerBase , Object[] )\n at System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext, IDictionary`2 parameters)\n""
我正在尝试匹配“\n User \n”并将其放入名为 User 的新字段中。使用 gsub 我可以使用以下 conf 很好地改变它:
mutate {
gsub => [
"message", "[\n]^User.*\n", "changed"
]
}
但是将其放入 grok 会导致 grokparsefailure。我如何在 grok 中使用它?
我最后得到:
grok {
match => {
"message" => "User:%{GREEDYDATA:user}\n"
}
}
这似乎匹配 "User:"
和 "\n"
给你,
User:%{SPACE}%{WORD:user}
这将使用用户名
创建一个新字段user
{
"SPACE": [
[
" "
]
],
"user": [
[
"TestUser"
]
]
}