小编Vin*_*dan的帖子

如何在logstash中的grok模式中使用IF ELSE条件

我将Web和API日志合并在一起,我想将其单独保存在elasticsearch中。所以我想编写一种模式,如果请求是 API,那么如果过去应该执行,请求是 Web,那么应该执行日志的一部分。

以下是一些 Web 和 API 日志。

00:06:27,778 INFO  [stdout] (ajp--0.0.0.0-8009-38) 00:06:27.777 [ajp--0.0.0.0-8009-38] INFO  c.r.s.web.rest.WidgetController - Method getWidgetDetails() started to get widget details.
00:06:27,783 INFO  [stdout] (ajp--0.0.0.0-8009-38) ---> HTTP GET http://api.survey.me/v1/getwidgetdetails?profileName=jeremy-steffens&profileLevel=INDIVIDUAL&companyProfileName=premier-nationwide-lending&hideHistory=true
00:06:27,817 INFO  [stdout] (ajp--0.0.0.0-8009-38) <--- HTTP 200 http://api.survey.me/v1/getwidgetdetails?profileName=jeremy-steffens&profileLevel=INDIVIDUAL&companyProfileName=premier-nationwide-lending&hideHistory=true (29ms)
00:06:27,822 INFO  [stdout] (ajp--0.0.0.0-8009-38) 00:06:27.822 [ajp--0.0.0.0-8009-38] INFO  c.r.s.web.rest.WidgetController - Method getWidgetDetails() finished.
00:06:27,899 INFO  [stdout] (ajp--0.0.0.0-8009-40) 00:06:27.899 [ajp--0.0.0.0-8009-40] INFO  c.r.s.web.controller.LoginController - Inside initLoginPage() of LoginController
Run Code Online (Sandbox Code Playgroud)

我试图写条件但它不起作用。它仅适用于线程名称。在线程之后,我有多种类型的日志,因此无法在没有 if 条件的情况下写入。

(?:%{TIME:CREATED_ON})(?:%{SPACE})%{WORD:LEVEL}%{SPACE}\[%{NOTSPACE}\]%{SPACE}\(%{NOTSPACE:THREAD}\)
Run Code Online (Sandbox Code Playgroud)

有人可以给我建议吗?

logstash logstash-grok logstash-configuration elastic-stack

1
推荐指数
1
解决办法
2万
查看次数