【问题标题】:Grok pattern does not work for $ characterGrok 模式不适用于 $ 字符
【发布时间】:2015-10-15 08:39:20
【问题描述】:

我使用logstash 将日志收集到elasticsearch。我正在通过在此链接上测试某些日志来创建 grok 过滤器:

http://grokconstructor.appspot.com/do/match#result

我对 $ 字符有疑问。不好的是你不知道日志中是否会有 $ 字符。

示例日志:

[8/11/15 10:34:47:047 EEST] 0000003b MbuRmmAdapter I   DCSV1032I: DCS Stack DefaultCoreGroup at Member TEST\G

成功适用于该日志的过滤器:

\[%{DATESTAMP:datestamp}\s(?<tzone>.*)\]\s(?<threadid>[\w]{8})\s%{WORD:logshortname}\s+(?<eventtype>[\w]{1})\s(?<msg>.*)

但是如果我们在 MbuRmm$Adapter 之类的 MbuRmmAdapter 中放入 $,调试器会说 $ 后面的部分与过滤器不匹配。

我能做什么?

【问题讨论】:

    标签: elasticsearch filter grok logstash-grok


    【解决方案1】:

    只需为您的 logshortname 字段使用 DATA 模式而不是 WORD 模式,它应该可以正常工作:

    \[%{DATESTAMP:datestamp}\s(?<tzone>.*)\]\s(?<threadid>[\w]{8})\s%{DATA:logshortname}\s+(?<eventtype>[\w]{1})\s(?<msg>.*)
    

    您可以在此处查看所有预定义 grok 模式的定义: https://github.com/elastic/logstash/tree/v1.4.2/patterns

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-02-19
      • 1970-01-01
      • 1970-01-01
      • 2023-03-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-02
      相关资源
      最近更新 更多