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

Swa*_*ood 5 error-handling apache-nifi

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

我不是特别谈论这里的记录部分.

Mat*_*man 5

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

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

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

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

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

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

HTTP [S]:// {主机}:{端口}/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