使用正则表达式从其他字段注册新字段

时间:2018-03-28 07:26:43

标签: logstash logstash-grok

来自字符串

""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用户\ n"并将其放入名为User的新领域。使用gsub,我可以通过以下conf来改变它:

        mutate {
            gsub => [
                "message", "[\n]^User.*\n", "changed"
            ]
        }

但是把它放到grok会产生grokparsefailure。我怎么能在grok中使用它?

2 个答案:

答案 0 :(得分:0)

我最终得到了:

grok { 
     match => { 
        "message" => "User:%{GREEDYDATA:user}\n" 
     } 
}

这似乎与"User:""\n"

之间的所有内容相匹配

答案 1 :(得分:0)

你去,

User:%{SPACE}%{WORD:user}

这将使用用户名

创建一个新字段user
{
  "SPACE": [
    [
      " "
    ]
  ],
  "user": [
    [
      "TestUser"
    ]
  ]
}