如何在apache nifi中捕获公告消息

时间:2016-05-25 07:50:20

标签: error-handling apache-nifi

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

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

1 个答案:

答案 0 :(得分:5)

如您所知,公告反映了已记录的消息。所以这些内容都已存储在{NIFI_HOME} /logs/nifi-app.log中。但是,如果您想直接使用公告,则可以使用几种不同的选项。

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

HTTP [秒]:// {主机}:{端口} / nifi-API /控制器/处理的基团/ {处理组ID} /状态递归=真

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

  

HTTP [秒]:// {主机}:{端口} / nifi-API /控制器/状态

此请求将获取Controller级别组件的状态(包括公告)。这包括来自Controller Services,Reporting Tasks和NiFi Framework本身的任何报告公告(聚类消息等)。

  

HTTP [秒]:// {主机}:{端口} / nifi-API /控制器/公告板极限= N&安培;的SourceID = {ID}&安培;消息= {STR}

此请求将访问所有公告并支持基于过滤的组件,消息并限制返回的公告数。

  • 您还可以创建一个可以访问公告存储库的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