grok 的自定义正则表达式
Custom regular expression for grok
我的问题是关于 logstash 中的 grok 过滤器。对于 logstash 过滤器,我需要解析一个日志文件。下面的示例日志语句
2017-07-31 09:01:53,135 - INFO
[QuorumPeer[myid=1]/0:0:0:0:0:0:0:0:2181:ZooKeeperServer@617] -
Established session 0x15d964d654646f4 with negotiated timeout 5000 for
client /10.191.202.89:56232
我想使用正则表达式解析 [] 之间的语句但没有成功?从上面的行
- QuorumPeer[myid=1]/0:0:0:0:0:0:0:0:2181 应映射到线程 ID。
- ZooKeeperServer 应映射到 class 名称
- 617 应映射到行号
谁能帮我解决这个问题的正则表达式?
您可以使用
\[(?<threadid>\w+[^/]*/[\d:]+):(?<classname>[^\]@]+)@(?<linenumber>\d+)\]
详情
\[
- 文字 [
(?<threadid>\w+[^/]*/[\d:]+)
- 组 "threadid":1+ 个单词字符,然后是 /
、/
以外的 0+ 个字符,然后是 1 个或多个数字或 :
(请注意,您可以根据需要调整此模式,例如,它也可以写成 (?<threadid>.*?[\d:]+)
但它不会那么安全)
:
- 冒号
(?<classname>[^\]@]+)
- 组 "classname":]
和 @
以外的 1 个或多个字符
@
- 一个 @
字符
(?<linenumber>\d+)
- 组 "linenumber":1 个或多个数字
\]
- 文字 ]
.
grokdebug.herokuapp.com在线测试结果:
我的问题是关于 logstash 中的 grok 过滤器。对于 logstash 过滤器,我需要解析一个日志文件。下面的示例日志语句
2017-07-31 09:01:53,135 - INFO [QuorumPeer[myid=1]/0:0:0:0:0:0:0:0:2181:ZooKeeperServer@617] - Established session 0x15d964d654646f4 with negotiated timeout 5000 for client /10.191.202.89:56232
我想使用正则表达式解析 [] 之间的语句但没有成功?从上面的行
- QuorumPeer[myid=1]/0:0:0:0:0:0:0:0:2181 应映射到线程 ID。
- ZooKeeperServer 应映射到 class 名称
- 617 应映射到行号
谁能帮我解决这个问题的正则表达式?
您可以使用
\[(?<threadid>\w+[^/]*/[\d:]+):(?<classname>[^\]@]+)@(?<linenumber>\d+)\]
详情
\[
- 文字[
(?<threadid>\w+[^/]*/[\d:]+)
- 组 "threadid":1+ 个单词字符,然后是/
、/
以外的 0+ 个字符,然后是 1 个或多个数字或:
(请注意,您可以根据需要调整此模式,例如,它也可以写成(?<threadid>.*?[\d:]+)
但它不会那么安全):
- 冒号(?<classname>[^\]@]+)
- 组 "classname":]
和@
以外的 1 个或多个字符
@
- 一个@
字符(?<linenumber>\d+)
- 组 "linenumber":1 个或多个数字\]
- 文字]
.
grokdebug.herokuapp.com在线测试结果: