【问题标题】:Creating custom grok filters创建自定义 grok 过滤器
【发布时间】:2020-06-28 22:41:30
【问题描述】:

我需要为行格式如下的文件找到 grok 模式:

 3 dbm.kfa            0        340220       7766754          93.9
 3 swapper/3            0        340220       7766754          93.9

这是我到目前为止所做的 grok 模式。

\s*%{INT:no1}\s*%{USERNAME:name}\s*%{INT:no2}\s*%{INT:no3}\s*%{INT:no4}\s*%{GREEDYDATA:ans}

USERNAME 字段适用于dbm.kfa,但不适用于swapper/3,因为USERNAME 不包含\ 字符。我想为此创建一些自定义过滤器,但不知道如何创建。

任何帮助将不胜感激。非常感谢!

【问题讨论】:

    标签: logstash elastic-stack logstash-grok


    【解决方案1】:

    要创建自定义模式,您需要使用以下格式的外部文件,并将该文件放在仅用于模式文件的目录中。

    PATTERN_NAME [regex for your pattern]
    

    然后您需要更改 grok 配置以指向模式文件目录。

    grok {
        patterns_dir => ["/path/to/patterns/dir"]
        match => { "message" => "%{PATTERN_NAME:fieldName}" } 
    }
    

    但在您的特定情况下,如果您将 %{USERNAME:name} 更改为 %{DATA:name} 它应该可以工作。

    有关自定义模式的更好解释,您应该阅读this part of the documentation

    您还可以在此 github repository 中找到 logstash 附带的所有核心 grok 模式,最常用的是 grok-patterns 文件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-04-04
      • 1970-01-01
      • 2015-09-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多