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