了解来自哪个机器的ListenHTTP处理器正在接收请求

时间:2019-07-08 07:50:09

标签: apache-nifi

我有一个nifi管道,看起来像这样:

(LisitenHTTP)-[success]->(EvaluateJsonPath)-[failure,unmatched]->(ExecuteStreamCommand)       
                                |  
                            [matched]
                                |
                                V
                        rest of the pipeline

因此,基本上ListenHTTP在其中一个端口上接收到处理请求(作为json)。它将其转发到EvaluateJsonPath,后者决定如何处理。但是,如果无法解析输入的json,则会将流文件发送到ExecuteStreamCommand,后者会将失败通知记录到仪表板。

最近,即使整个系统工作正常,我们仍在仪表板上收到大量的故障通知。所以我在猜怎么了。我检查了ExecuteStreamCommand的数据来源,意识到我们收到了很多无效请求,其中大多数甚至都不是json格式。因此,我试图找到如何从哪里获得这些虚拟请求的方法。有什么办法可以知道我们从哪里获得这些请求的,可能是发送这些请求的计算机的IP吗?有什么方法可以在ListenHTTP处理器上启用详细日志记录,以便我们了解记录此类请求的计算机的IP /主机名吗?还有谁能想到其他解决方法?

1 个答案:

答案 0 :(得分:1)

Mahesha999,

此信息可在请求标头中找到:X-Forwarded-ForX-Forwarded-Host

@daggett指出,如果您有防火墙设置,则可以设置防火墙以将这些标头传递或将它们映射到诸如“ client-ip”之类的其他内容