【问题标题】:Wrong Grok pattern错误的 Grok 模式
【发布时间】:2022-01-13 13:32:34
【问题描述】:

我正在尝试为以下日志跟踪创建一个 grok 模式:

"source":"<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>"

我做过的grok模式是:

a href=\\"http://twitter.com/download/(?<Client>\b\w+\b)

这似乎在我尝试过的任何在线 grok 调试器中都能正常工作。但是,当我运行 logstash 时,我得到了一个 grok parserror。这是我的 logstash 配置:

grok { match => {"message" => "a href=\\http://twitter.com/download/(?<Client>\b\w+\b)"}

你能告诉我我做错了什么吗?我不明白为什么它不能在 logstash 上运行,但似乎可以在任何在线调试器中运行。

预期的输出是:Client: iPhone

谢谢

【问题讨论】:

    标签: logstash logstash-grok


    【解决方案1】:

    我认为您可以更改方法以避免处理所有 /" 字符 ;) 所以

    行:

    grok { match => {"message" => "a href=\\http://twitter.com/download/(?<Client>\b\w+\b)"}
    

    可以替换为:

    grok { match => {"message" => "*%{URI}\/download\/(?<Client>\b\w+\b).*"}
    

    【讨论】:

    • 我用你的解决方案替换了它,但我仍然遇到同样的错误。
    • 好的,我完全改变了我的答案,我得到了一个与您的数据样本匹配的新正则表达式。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多