7

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

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

4

1 回答 1

6

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

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

http[s]://{host}:{port}/nifi-api/controller/process-groups/{process-group-id}/status?recursive=true

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

http[s]://{host}:{port}/nifi-api/controller/status

此请求将获取控制器级别组件的状态(包括公告)。这包括来自控制器服务、报告任务和 NiFi 框架本身(集群消息等)的任何报告的公告。

http[s]://{host}:{port}/nifi-api/controller/bulletin-board?limit=n&sourceId={id}&message={str}

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

  • 您还可以创建一个可以访问公告存储库的报告任务实现。报告任务是一个扩展点,旨在报告此 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

于 2016-05-25T12:33:55.537 回答