【问题标题】:Grok filter for logstash to match a specific value from a log file用于 logstash 的 Grok 过滤器以匹配日志文件中的特定值
【发布时间】:2018-10-30 13:19:09
【问题描述】:

我有以下日志:

2018-10-30 11:47:52 INFO     30464 SMS-MT [cid:300038] [queue-msgid:bb7a195d-fb23-42ae-bbfa-d2dcda405af9] [smpp-msgid:j.11082.639364178944.#MARKET SETU] [status:ESME_ROK] [prio:1] [dlr:NO_SMSC_DELIVERY_RECEIPT_REQUESTED] [validity:none] [from:2323232] [to:23232132312] [content:'#MARKET SETUP\nadsadadadadasdasdadaasdada mo ang:\nC jean_rivera\n--Mag reply ng A-C']

我已经在 logstash 中创建了一个基于模式的 grok 过滤器,因此我可以按照我想要的方式解析日志。我有这个:

%{DATESTAMP:Timestamp} %{LOGLEVEL:Level}     %{BASE10NUM:Pid} %{USERNAME:SMS_TYPE} %{CID:CID} %{GREEDYDATA:Message}

我正在尝试创建一个匹配 300038 的 GROK 模式,这是 cid: 之后的数字。语法始终相同,[cid:number]。我现在拥有的是:

    CID (\[cid:[0-9]{6}\])
but that results into: 
"CID": [
    [
      "[cid:300038]"
    ]
  ],

我只想匹配 300038,没有 [cid:] 部分

【问题讨论】:

    标签: elasticsearch logstash logstash-grok


    【解决方案1】:

    我注意到LOGpid 之间有多个空格字符,您可以使用\s* 匹配所有字符。

    要仅匹配来自 [cid:300038] 的数字,您可以使用 custom pattern\[cid:(?<CID>[0-9]{1,})\] 这将匹配任意长度的 cid,而不仅仅是 6 位数字。

    你的模式会变成,

    %{DATESTAMP:Timestamp} %{LOGLEVEL:Level}\s*%{BASE10NUM:Pid} %{USERNAME:SMS_TYPE} \[cid:(?<CID>[0-9]{1,})\] %{GREEDYDATA:Message}
    

    【讨论】:

    • 谢谢,它按预期工作。由于这两个答案似乎做同样的事情我会选择这个虽然据我所知 cid 可以是从 3 到任何长度的任何长度,在我们的例子中可能不超过 10 但最好像这样匹配它
    • 我最终使用了这个:%{DATESTAMP:Timestamp} %{LOGLEVEL:Level}\s*%{BASE10NUM:Pid} %{USERNAME:SMS_TYPE} \[cid:(?&lt;CID&gt;[0-9]{1,})\] \[queue-msgid:(?&lt;queue_id&gt;[A-Za-z0-9-]+)\] %{DATA:smpp} \[from:(?&lt;from&gt;[0-9]{1,})\] \[to:(?&lt;to&gt;[0-9]{1,})\] %{GREEDYDATA:Message}
    • 如果我可以创建一个类似于上面的 grok 模式并使用 like %{CID:cid} 而不是使用行中的完整语法,那也很好......任何想法怎么做那个?
    • using the full syntax 是什么意思?
    • 我的意思是定义一个grok模式,然后调用它。与我对 pid 或 SMS_TYPE、Level 等所做的相同
    【解决方案2】:

    使用

    %{DATESTAMP:Timestamp} %{LOGLEVEL:Level}     %{BASE10NUM:Pid} %{USERNAME:SMS_TYPE} \[cid:(?<CID>[0-9]{6})\] %{GREEDYDATA:Message}
    

    【讨论】:

      猜你喜欢
      • 2015-05-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多