我有一个nifi管道,看起来像这样:
(LisitenHTTP)-[success]->(EvaluateJsonPath)-[failure,unmatched]->(ExecuteStreamCommand)
|
[matched]
|
V
rest of the pipeline
因此,基本上ListenHTTP
在其中一个端口上接收到处理请求(作为json)。它将其转发到EvaluateJsonPath
,后者决定如何处理。但是,如果无法解析输入的json,则会将流文件发送到ExecuteStreamCommand
,后者会将失败通知记录到仪表板。
最近,即使整个系统工作正常,我们仍在仪表板上收到大量的故障通知。所以我在猜怎么了。我检查了ExecuteStreamCommand
的数据来源,意识到我们收到了很多无效请求,其中大多数甚至都不是json格式。因此,我试图找到如何从哪里获得这些虚拟请求的方法。有什么办法可以知道我们从哪里获得这些请求的,可能是发送这些请求的计算机的IP吗?有什么方法可以在ListenHTTP
处理器上启用详细日志记录,以便我们了解记录此类请求的计算机的IP /主机名吗?还有谁能想到其他解决方法?
答案 0 :(得分:1)
Mahesha999,
此信息可在请求标头中找到:X-Forwarded-For和X-Forwarded-Host
@daggett指出,如果您有防火墙设置,则可以设置防火墙以将这些标头传递或将它们映射到诸如“ client-ip”之类的其他内容