【问题标题】:Grok pattern to retrieve Processor id from Nifi logs从 Nifi 日志中检索处理器 ID 的 Grok 模式
【发布时间】:2020-09-29 03:11:22
【问题描述】:

谁能帮我找到正确的 Grok 模式,以便从 nifi 的以下示例日志(仅消息部分)中仅检索 id 值

  1. o.a.n.c.s.StandardControllerServiceNode StandardControllerServiceNode[service=DBCPConnectionPool[id=5609ac16-0174-1000-eeee-ffffd19aae44]
  2. o.a.n.c.s.StandardControllerServiceNode 调用 DBCPConnectionPool 的@OnEnabled 方法失​​败[id=5609ac16-0174-1000-hhhh-ffffd19aae44]
  3. o.a.n.c.s.StandardControllerServiceNode 调用 DBCPConnectionPool 的@OnEnabled 方法失​​败[id=5609ac16-0174-1000-gggg-ffffd19aae44]*

我尝试使用以下模式,但它正在检索整个消息但无法单独获取 id 值

  • %{TIMESTAMP_ISO8601:timestamp} %{LOGLEVEL:severity} [%{DATA:thread}] %{DATA:class} %{GREEDYDATA:message}

【问题讨论】:

    标签: apache-nifi grok logparser


    【解决方案1】:

    如果您只想提取 id,则可以使用以下模式。

    \[id=%{DATA:id}\]
    

    这将在 [id= 上匹配,然后在下一个 ] 之前抓取所有内容。

    您可以通过定义与 ID 模式更准确匹配的自定义模式而不是使用 DATA 来使其更加健壮。

    我将以下资源用于 GROK 模式

    1. https://github.com/logstash-plugins/logstash-patterns-core/blob/master/patterns/grok-patterns
    2. https://grokconstructor.appspot.com/do/match

    【讨论】:

      【解决方案2】:

      您可以使用以下内容从日志中捕获 UUID。

      filter {
         grok{
           match =>  { "message" => "%{TIMESTAMP_ISO8601:timestamp}%{SPACE}%{LOGLEVEL:severity}%{SPACE}\[%{DATA:thread}\]%{SPACE}%{DATA:class}%{SPACE}%{GREEDYDATA}\[id=%{UUID:id}\]%{GREEDYDATA}"} 
         }
      }
      

      它应该给出如下输出

      {
              "thread" => "Curator-Framework-0",
                  "id" => "5609ac16-0174-1000-eeee-ffffd19aae44",
          "@timestamp" => 2020-10-06T11:24:24.703Z,
                "path" => "/usr/share/logstash/stack/data/data.log",
           "timestamp" => "2016-08-04 13:26:35,475",
            "severity" => "DEBUG",
            "@version" => "1",
                "host" => "356136d6f0b4",
             "message" => "2016-08-04 13:26:35,475 DEBUG [Curator-Framework-0] o.a.n.c.s.StandardControllerServiceNode StandardControllerServiceNode[service=DBCPConnectionPool[id=5609ac16-0174-1000-eeee-ffffd19aae44]"
      }
      

      假设示例日志条目是

      2016-08-04 13:26:35,475 DEBUG [Curator-Framework-0] o.a.n.c.s.StandardControllerServiceNode StandardControllerServiceNode[service=DBCPConnectionPool[id=5609ac16-0174-1000-eeee-ffffd19aae44]
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-01-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-05-23
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多