错误的 Grok 模式
Posted
技术标签:
【中文标题】错误的 Grok 模式【英文标题】:Wrong Grok pattern 【发布时间】: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
谢谢
【问题讨论】:
【参考方案1】:我认为您可以更改方法以避免处理所有 /" 字符 ;) 所以
行:
grok match => "message" => "a href=\\http://twitter.com/download/(?<Client>\b\w+\b)"
可以替换为:
grok match => "message" => "*%URI\/download\/(?<Client>\b\w+\b).*"
【讨论】:
我用你的解决方案替换了它,但我仍然遇到同样的错误。 好的,我完全改变了我的答案,我得到了一个与您的数据样本匹配的新正则表达式。以上是关于错误的 Grok 模式的主要内容,如果未能解决你的问题,请参考以下文章
Grok-exporter 正在运行,但未显示指标 [服务错误:配置无效]
使用 Grok for Logstash 解析 Apache2 错误日志