在Nifi中获取源/上游连接的处理器名称

时间:2019-03-27 10:30:10

标签: rest apache-nifi

我想从业务角度监控Nifi中的流文件。

因此,我使用python脚本添加了executescript处理器,该脚本创建了消息,并在每个处理器之后将其推送到elasticsearch中。

我想要此执行脚本处理器的父处理器名称或ID,以便我继续在流文件中追加内容,这将使该流文件通过哪个阶段/处理器,并可以在ELK中对其进行监视。

1 个答案:

答案 0 :(得分:2)

我认为监视FlowFiles的最佳方法是使用“来源”日志。您还可以使用另一个NiFi实例和S2S将这些日志导出到ELK。

无论如何,如果要使用REST API获取连接源/目标的处理器名称,则可以在浏览进程组的连接时获取它。 示例:

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script>
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css" rel="stylesheet" />
<div class="modal fade" id="quit_Modal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">
  <div class="modal-dialog" role="document">
    <div class="modal-content">
      <div class="modal-header">
        <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
        <h4 class="modal-title" id="myModalLabel">Modal title</h4>
      </div>
      <div class="modal-body">
        ...
      </div>
      <div class="modal-footer">
        <button type="button" class="btn btn-default btnClose" data-dismiss="modal">Close</button>
        <button type="button" class="btn btn-danger">Button</button>
      </div>
    </div>
  </div>
</div>

您将获得一系列连接。在连接对象中,您将在路径/nifi-api/process-groups/{processGroupId}/connections/ 中获得源的名称。目的地也一样。

编辑:

要使用出处日志,您需要执行以下操作:

  1. 将出处日志发送到另一个NiFi实例(由于它使用S2S,因此仅限于NiFi)。
  2. 解析此NiFi实例中的日志
  3. 使用component/source/name处理器将日志发送到ElasticSearch。

效果最好,将帮助您最好地监视FlowFiles:)