Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex grok的自定义正则表达式_Regex_Logstash Grok_Grok - Fatal编程技术网

Regex grok的自定义正则表达式

Regex grok的自定义正则表达式,regex,logstash-grok,grok,Regex,Logstash Grok,Grok,我的问题是关于logstash中的grok过滤器。对于logstash筛选器,我需要解析一个日志文件。下面是日志语句示例 2017-07-31 09:01:53135-信息 [QuorumPeer[myid=1]/0:0:0:0:0:0:0:2181:ZooKeeperServer@617] - 已建立会话0x15D964D6546F4,协商超时为5000 客户机/10.191.202.89:56232 我想使用正则表达式解析[]之间的语句,但没有成功?从上面 QuorumPeer[myid=1

我的问题是关于logstash中的grok过滤器。对于logstash筛选器,我需要解析一个日志文件。下面是日志语句示例

2017-07-31 09:01:53135-信息 [QuorumPeer[myid=1]/0:0:0:0:0:0:0:2181:ZooKeeperServer@617] - 已建立会话0x15D964D6546F4,协商超时为5000 客户机/10.191.202.89:56232

我想使用正则表达式解析[]之间的语句,但没有成功?从上面

  • QuorumPeer[myid=1]/0:0:0:0:0:0:0:0:2181应映射到线程id
  • ZookePerServer应该映射到类名
  • 617应与行号对应
  • 有人能帮我找到这个正则表达式吗

    您可以使用

    \[(?<threadid>\w+[^/]*/[\d:]+):(?<classname>[^\]@]+)@(?<linenumber>\d+)\]
    
    \[(?\w+[^/]*/[\d:]+):(?[^\]@]+)@(?\d+]
    
    详细信息

    • \[
      -文字
      [
    • (?\w+[^/]*/[\d:]+)
      -将“threadid”分组:1+字字符,然后是0+字符,而不是
      /
      /
      ,然后是1个或多个数字或
      (请注意,您可以根据需要调整此模式,例如,也可以将其编写为
      (?*?[\d:]+)
      ,但不会那么安全)
    • -冒号
    • (?[^\]@]+)
      -组“classname”:除
      ]
      @
    • @
      -一个
      @
      字符
    • (?\d+)
      -组“行号”:1个或多个数字
    • \]
      -文字
      ]
    在线测试结果,网址:


    您能添加您已经尝试过的内容吗?您能发布您的整个conf文件吗?这样我就可以看到所有这一切是如何完成的?我一整天都在试图弄清楚如何让自定义正则表达式工作,即使在kibana调试器中,我也无法正确使用它。谢谢你回答这个问题。我不想在正则表达式中硬编码QuorumPeer。如果出现以下语句,它将不起作用:[NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:NIOServerCnxn@178]