【问题标题】:log file monitoring using regex使用正则表达式监控日志文件
【发布时间】:2014-09-24 04:07:28
【问题描述】:

下面是我们应用程序的示例日志文件,我要监控这个日志文件并在过去 5 分钟内获得代码 91(第 6 列)的计数,我将使用 sitescope 监控工具的日志文件监控功能,我需要帮助来构建正则表达式以捕获第 6 列 我尝试使用 /91/ 但它从整行中捕获 9 和 1。

     Slot[21] 0100 000000 4766430101212871 ------------- 00 673992 000000009700 425721673992301758074766430101212871 425721673992 884397 S
00:54:34 
     Slot[33] 0420 000000 4766430101206956 0000000000000 **91** 031078 000000005000 425646031078DFLT99994766430101206956 425646031078 819664 S
00:54:41 
     Slot [29] | NOT FINANCIAL TRANSACTION
00:55:11 
      Slot [2] | NOT FINANCIAL TRANSACTION
00:55:25 
      Slot[12] 0420 000000 4766430101218191 0000000000000 91 212183 000000000100 425510212183DFLT99994766430101218191 425510212183 843916 S
00:55:31 
      Slot[25] 0200 012000 4766430101027386 ------------- 00 707971 000000002000 425719707971WMAD06134766430101027386 425719707971 135632 S
00:55:41 
      Slot [0] | NOT FINANCIAL TRANSACTION
00:55:48 
      Slot [10] | NOT FINANCIAL TRANSACTION
00:56:13 
      Slot [34] | NOT FINANCIAL TRANSACTION
00:56:41 
       Slot [17] | NOT FINANCIAL TRANSACTION
00:56:43 
       Slot[41] 0100 000000 4766430101077084 ------------- 00 609169 000000001850 425719609169000001014766430101077084 425719609169 137844 'S

有什么专家建议吗?

TIA

【问题讨论】:

  • 您可以在分隔符上拆分,检查结果列表/数组的长度,然后检查第 6 个条目的值是否为 91,而不是使用正则表达式。

标签: regex logging monitoring sitescope


【解决方案1】:

试试这个:

\s*Slot\s*\[\d+](?:\s+\S+){4}[\s*]+(91)\b

Demo

【讨论】:

    【解决方案2】:

    如果你的列用一个空格隔开,你可以试试

    /([^ ]+ ){5}91 /
    

    不知道你的工具是否支持{n},即重复n次。

    【讨论】:

      【解决方案3】:

      我发现 / 91 /s 工作并满足我的要求

      【讨论】:

      • 如果这是您的最终解决方案和问题的答案,请尽快将其标记为“正确”答案。
      • 谢谢它需要等待 15 小时才能接受我自己的答案 :) 等一下
      • 如果其他答案也有帮助,请不要犹豫,为其他答案投票。 :)
      猜你喜欢
      • 2015-12-09
      • 1970-01-01
      • 2010-09-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-19
      • 1970-01-01
      相关资源
      最近更新 更多