Apache nifi 从Nifi日志检索处理器id的Grok模式
有人能帮我找到正确的Grok模式,从nifi的下面示例日志(仅消息部分)中检索id值吗Apache nifi 从Nifi日志检索处理器id的Grok模式,apache-nifi,grok,logparser,Apache Nifi,Grok,Logparser,有人能帮我找到正确的Grok模式,从nifi的下面示例日志(仅消息部分)中检索id值吗 o、 a.n.c.s.StandardControllerService服务节点StandardControllerService服务节点[service=DBCPConnectionPool[id=5609ac16-0174-1000-eeee-FFFFD19AE44] o、 a.n.c.s.StandardControllerServiceNode未能调用DBCPConnectionPool的@OneEn
- %{TIMESTAMP_ISO8601:TIMESTAMP}%{LOGLEVEL:severity}[%{DATA:thread}]%{DATA:class}%{greedydydata:message}
\[id=%{DATA:id}\]
这将在[id=上匹配,然后在下一个之前抓取所有内容
您可以通过定义一个更精确地匹配ID模式的自定义模式,而不是使用数据,使其更加健壮
我将以下资源用于GROK模式
您可以使用下面这样的方法从日志中捕获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]