Apache nifi 知道ListenHTTP处理器从哪台机器接收请求

Apache nifi 知道ListenHTTP处理器从哪台机器接收请求,apache-nifi,Apache Nifi,我有一个nifi管道,看起来像这样: (LisitenHTTP)-[success]->(EvaluateJsonPath)-[failure,unmatched]->(ExecuteStreamCommand) | [matched] |

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

(LisitenHTTP)-[success]->(EvaluateJsonPath)-[failure,unmatched]->(ExecuteStreamCommand)       
                                |  
                            [matched]
                                |
                                V
                        rest of the pipeline
因此,基本上,
ListenHTTP
在其中一个端口上接收处理请求(作为json)。它将其转发给
EvaluateJsonPath
,后者决定如何处理。但是,如果无法解析输入json,它会将流文件发送到
ExecuteStreamCommand
,该命令会将失败通知记录到仪表板

最近,我们在仪表盘上收到了大量的故障通知,尽管整个系统工作正常。所以我在猜测出了什么问题。我检查了
ExecuteStreamCommand
的数据来源,发现我们收到了许多无效请求,其中大多数甚至不是json格式的。所以我想知道我们从哪里得到这些假请求。有没有办法知道我们从哪里得到这些请求,可能是发送这些请求的机器的IP?有没有办法在
ListenHTTP
处理器上启用详细的日志记录,以便我们了解记录此类请求的机器的IP/主机名?还有人能想出其他方法来解决这个问题吗?

Mahesha999

此信息可在请求标题中找到:和


正如@daggett所指出的,如果你有防火墙设置,你可以设置防火墙来传递这些头或者将它们映射到其他东西,比如“客户端ip”

ListenHTTP可以捕获http头。如果你的nifi在防火墙后面,那么你可以设置防火墙来提供一些有用的头,比如客户端ip