如何使用grok模式在kibana中解析此内容?

问题描述 投票:0回答:1

kibana 中的消息是:

{"log":"2024-02-01 10:30:00.004  INFO 1 --- [pool-1-thread-2] c.ankon.timer.ReminderExecCheckSchedule  : Detecting Timed ,start...\n","stream":"stdout","time":"2024-02-01T02:30:00.01291984Z"}

我正在尝试编写一个 grok 表达式来进行匹配:

%{QS:LOGTYPE}:%{QS:CONTENT},%{QS:ST}:%{QS:TIME}:%{QS:timestamp}

但是这是不对的

问题1:

我想问一下grok表达式应该怎么写才能匹配上面的内容

问题2:

如果我希望最终结果是:

{"log":"2024-02-01 10:30:00.004  INFO 1 --- [pool-1-thread-2] c.ankon.timer.ReminderExecCheckSchedule  : Detecting Timed ,start...\n"}

grok图案的内容是什么?

kibana logstash-grok
1个回答
0
投票

您可以使用 Kibana 中内置的 Grok 调试器。 http://localhost:5601/app/dev_tools#/grokdebugger

输入

{"log":"2024-02-01 10:30:00.004  INFO 1 --- [pool-1-thread-2] c.ankon.timer.ReminderExecCheckSchedule  : Detecting Timed ,start...\n","stream":"stdout","time":"2024-02-01T02:30:00.01291984Z"}

输出:

{
  "loglevel": "INFO",
  "thread": "1",
  "message": "Detecting Timed ,start...\\n\",\"stream\":\"stdout\",\"time\":\"2024-02-01T02:30:00.01291984Z\"}",
  "class": "c.ankon.timer.ReminderExecCheckSchedule ",
  "timestamp": "2024-02-01 10:30:00.004",
  "threadname": "pool-1-thread-2"
}

您可以使用以下链接查看所有 grok 模式。 https://github.com/hpcugent/logstash-patterns/blob/master/files/grok-patterns

问题2: 如果您想要如下所示的最终结果:

{"log":"2024-02-01 10:30:00.004  INFO 1 --- [pool-1-thread-2] c.ankon.timer.ReminderExecCheckSchedule  : Detecting Timed ,start...\n"}

你可以使用另一个 grok,如下所示:

%{DATA:raw_data}\\n

上面的 grok 模式将解析数据并只取 before

\n

的部分

© www.soinside.com 2019 - 2024. All rights reserved.