我想知道是否有一种方法可以捕获显示在Nifi UI上的公告消息(基本上是错误),并将其存储在某些属性/文件中,以便以后查看。屏幕每5分钟刷新一次,如果任何处理器出现故障,我都想知道其原因。

我在这里不是特别在谈论日志记录部分。

最佳答案

如您所知,公告反射(reflect)了已记录的消息。因此,所有这些内容已经存储在{NIFI_HOME}/logs/nifi-app.log中。但是,如果您想直接使用该公告,则有两种不同的选择。

  • 您可以使用REST API中的公告。有几个用于访问公告的端点。



  • 该请求将获取指定流程组下所有组件的状态(包括公告)。您可以将别名“root”用于根级别的“进程组”。递归标志将指示是否仅返回该进程组的子级或所有后代组件。



    该请求将获取 Controller 级别组件的状态(包括公告)。其中包括Controller Services,Reporting Tasks和NiFi Framework本身(群集消息等)中报告的所有公告。



    该请求将访问所有公告,并支持基于过滤的组件,消息和限制返回的公告数量。
  • 您还可以创建一个可以访问公告存储库的Reporting Task实现。报告任务是一个扩展点,用于报告该NiFi实例的详细信息。这将需要一些Java代码,但是将允许您随意报告该公告。这是一个向Ambari [1]报告指标的示例。

  • [1] https://github.com/apache/nifi/blob/master/nifi-nar-bundles/nifi-ambari-bundle/nifi-ambari-reporting-task/src/main/java/org/apache/nifi/reporting/ambari/AmbariReportingTask.java

    关于error-handling - 如何在Apache Nifi中捕获公告消息,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37430915/

    10-10 21:46