当 id 有破折号时 Grok 过滤器不工作
Grok filter is not working when id has dashes
我有如下示例输入。
[2022-01-06 19:51:42,143] [http-nio-8080-exec-7] DEBUG [50a4f8740c30b9ca,c1b11682-1eeb-4538-b7f6-d0fb261b3e1d]
我实现了一个 grok 过滤器来验证文本。
\[%{TIMESTAMP_ISO8601:timestamp}\] \[(?<threadname>[^\]]+)\] %{LOGLEVEL:logLevel} \[%{WORD:traceId},%{WORD:correlationId}\]
当我验证它时,它说没有匹配项。
但如果我删除 - 在相关 ID 中,该过滤器工作正常。是否需要对过滤器进行任何修改以在相关 ID 中接受 -?
试试这个。
\[%{TIMESTAMP_ISO8601:timestamp}\] \[%{DATA:threadName}\] %{LOGLEVEL:logLevel} \[%{DATA:traceId},%{DATA:correlationId}\]
根据 this %{WORD}
模式由这个正则表达式定义 \b\w+\b
\w
捕获字母数字
\b
捕获单词边界。它可以帮助您执行 whole words only
因此,如果您的原始文本包含 -
,它将永远不会被捕获。
您可以尝试 %{DATA}
,因为它捕获 .*?
我有如下示例输入。
[2022-01-06 19:51:42,143] [http-nio-8080-exec-7] DEBUG [50a4f8740c30b9ca,c1b11682-1eeb-4538-b7f6-d0fb261b3e1d]
我实现了一个 grok 过滤器来验证文本。
\[%{TIMESTAMP_ISO8601:timestamp}\] \[(?<threadname>[^\]]+)\] %{LOGLEVEL:logLevel} \[%{WORD:traceId},%{WORD:correlationId}\]
当我验证它时,它说没有匹配项。 但如果我删除 - 在相关 ID 中,该过滤器工作正常。是否需要对过滤器进行任何修改以在相关 ID 中接受 -?
试试这个。
\[%{TIMESTAMP_ISO8601:timestamp}\] \[%{DATA:threadName}\] %{LOGLEVEL:logLevel} \[%{DATA:traceId},%{DATA:correlationId}\]
根据 this %{WORD}
模式由这个正则表达式定义 \b\w+\b
\w
捕获字母数字\b
捕获单词边界。它可以帮助您执行whole words only
因此,如果您的原始文本包含 -
,它将永远不会被捕获。
您可以尝试 %{DATA}
,因为它捕获 .*?