【问题标题】:Logstash config -- add field based off regex capturing groupLogstash 配置——添加基于正则表达式捕获组的字段
【发布时间】:2016-08-23 16:56:27
【问题描述】:

所以,我有一个类似于以下内容的主机名字段:

amma-pr-app-03.hst.hosting.com

我制作了以下正则表达式:

([^-]{4,5})-(pr|st)-(app|svc|srv)-(\d+)

应该分成 4 个捕获组——在这种情况下是

安装 - amma

域 - 公关

服务 - 应用程序

节点 - 03

鉴于当前的捕获组,我将如何变异?

我尝试添加字段,然后使用 $1 中的值。

有人对此有什么建议吗?

【问题讨论】:

    标签: regex split logstash logstash-grok logstash-configuration


    【解决方案1】:

    您可以这样命名您的捕获组:

    (?<field_name>pattern)
    

    有了这个,你的 grok 模式可以如下所示:

    (?<installation>[^-]{4,5})-(?<domain>(pr|st))-(?<service>(app|svc|srv))-(?<node>(\d+))
    

    【讨论】:

    • 作为一个问题,这是否适用于 filebeat 添加的字段?主机名不是日志文件本身的一部分,而是发送日志时 filebeat 添加的内容的一部分。据我所知,我的 logstash 配置与“消息”字段匹配,并且该字段位于该字段之前。
    • 您手动添加或使用 Filebeat 自动添加的任何字段都应该可以在 Logstash 过滤器中访问。
    • 酷,让我测试一下(有人刚刚重新启动了我的虚拟机,但您的回答似乎已经无法满足我的需要)
    • 这似乎不起作用,我在stackoverflow.com/questions/39211486/…提出了一个新问题
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-25
    • 2018-03-11
    • 1970-01-01
    相关资源
    最近更新 更多