使用 Logstash 过滤日志以创建新列

Filtering a log to create new columns with Logstash

我有一个自定义视频服务器,它以下列格式输出日志:

<12>May 18 10:35:53.551 myserver.com host:server: WARNING : call 117 (John Doe): video round trip time of 856 ms observed...

我需要能够在 Logstash 中使用 grok 来创建以下列:

呼叫 -> 117

姓名 -> John Doe

RTT -> 856 毫秒

但我是 Grok 和 Logstash 的新手。我该如何开始呢?

满足您要求的 Grok 模式:

\<%{INT:serialno}\>%{SYSLOGTIMESTAMP:timestamp} %{HOSTNAME:hostname} %{WORD:data}\:%{WORD:data}\:  %{LOGLEVEL:log-level} \: %{GREEDYDATA:logmsg} %{INT:call} \(%{GREEDYDATA:name}\)\: %{GREEDYDATA:logmsg} %{INT:RTT} %{WORD:unit} %{GREEDYDATA:logmsg}

您可以使用任何 grok 调试器测试 grok 模式。我用过的是https://grokdebug.herokuapp.com/

这是输出的屏幕截图: