问题标签 [apache-nifi-registry]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
721 浏览

apache-nifi - 无法导入在 Git 存储库中提交的 Nifi Registry 流

我正在使用配置了 PostgreSql 数据库和 git 持久性提供程序的 Nifi-1.9.2 和 Nifi registry-0.5.0。如果我创建存储桶和流,它会在 git repo 和存储桶中提交,流 ID 存储在 PostreSql 数据库中。但是,如果我尝试在 Nifi 中导入这些流,则会引发错误:“ID 为 bdc91c38-0173-1000-1a47-8335e91b99a3 的流注册表报告桶 5c6f139a-27a5-4b61-83bd-5be5d43b516e 不存在流,流bfd917c4-13e2-4d4b-afdc-346c9af02cb3,版本 1"。存储桶流在 GitHub 存储库和我的本地存储库中作为 .yml 和 .snapshot 文件提交。 git流

我试图在 Nifi 中这样 导入:在 Nifi 中导入

错误: 抛出错误

这是我在 providers.xml 中的配置:

PostgreSql 数据库的 nifi-registry.properties 文件中的配置:

谁能指导我如何将GitHub中提交的流导入Nifi画布?

这是 Nifi 注册表日志中的错误:

Nifi 日志中的错误:

0 投票
1 回答
75 浏览

apache-nifi - 如何使 ScriptEventHookProvider 工作?

我通过 Docker 部署了 Nifi 和 Nifi Registry。我正在尝试集成 ScriptEventHookProvider。 https://nifi.apache.org/docs/nifi-registry-docs/html/administration-guide.html#scripteventhookprovider

这是我的providers.xml:

在此处输入图像描述

引用的脚本文件notify.sh存在并放置在注册表容器内:

在此处输入图像描述

我尝试了相对路径和绝对路径,但没有任何帮助 - 我收到错误消息:

在此处输入图像描述

所以我的问题是,如何正确设置脚本路径和工作目录?为什么我们两个都需要?

0 投票
1 回答
501 浏览

json - 在 Nifi 中将 JSON 转换为 Avro

我想将 json 数据转换为 avro。我使用了 GenerateFlowFile 并输入了虚拟 json 值 [{"firstname":"prathik","age":21},{"firstname":"arun","age":22}]。然后我使用了 ConvertRecord 处理器,并使用具有以下架构的 AvroSchemaRegistry 设置 JsonTreeReader 和 AvroRecordSetWriter:AvroScehma

但我得到这个作为我的输出:输出(Avro数据)

我是 Apache Nifi 的新手。提前致谢。

0 投票
1 回答
1485 浏览

ldap - nifi中的第一次管理员用户名和密码

我是新手,使用下面的博客在 rhel 6.10 上进行 nifi https 配置。一切顺利,我不知道用户名和密码是什么,或者我根据文档在哪里提到过。任何帮助都会很棒。

https://mintopsblog.com/2017/11/01/apache-nifi-configuration/

0 投票
0 回答
596 浏览

ssl - 通过第三方 SSL 证书将容器化的 LDAP 支持的 Nifi 连接到容器化的 Nifi 注册表

注意:这不是一个问题,我提供的信息可能对其他人有所帮助。

大家好,

我最近花了太多时间敲击键盘,试图弄清楚如何在企业环境中将 Nifi 连接到 Nifi 注册表。在最终解决之后,我想我会在这里发布我的发现,以拯救下一个寻求 Nifi 和 Nifi 注册表帮助的可怜的灵魂。提前为长篇道歉,但我认为这些细节会很有用。

我需要设置 Nifi 和 Nifi-registry 的容器化实例,它们都由 LDAP 支持,利用企业 SSL 证书并使用内部容器注册表(不能直接访问 Internet)。截至今天早上,这已经开始工作了,这里是我如何让它在 RHEL 8 服务器上工作的概述:

在企业环境中,主机需要为 HTTPS 设置 SSL 证书,并确保它们可以安全地通信。

SSL 证书设置

  1. 在各自机器上的 Java 密钥库中为每个主机生成 SSL 私钥
  2. 从密钥库生成 CSR,并根据需要使用适当的 SAN
  3. 签署 CSR - 确保为 Nifi 证书设置了“客户端身份验证”和“服务器身份验证”扩展密钥使用属性(这是 Nifi 成功连接到 Nifi 注册表所必需的)。注册表证书只需要 Server Auth 属性。
  4. 将企业 CA 链导入密钥库,确保签名证书的完整信任链可解析
  5. 创建包含 CA 证书链的 Java 密钥库(信任库)

如果需要,我可以提供上述步骤的更多详细信息

现在我们有了一些 SSL 证书,设置容器的步骤如下:

容器设置

  1. 安装 podman(或 docker,如果您愿意)

  2. 对于 Podman - 更新 /etc/containers/registries.conf 以关闭默认容器注册表

  3. 对于 Podman - 更新 /usr/share/containers/libpod.conf 以将暂停容器的路径替换为我们内部注册表中的容器路径

  4. 为容器设置文件夹,确保它们具有“container_file_t”的 SELinux 文件上下文,并具有 1000:1000 的权限(容器中 nifi 用户的 UID 和 GID)。

  5. 设置一个 ENV 文件来定义所有要传递给容器的环境变量(Nifi 和 Registry 有很多,它们都共享此信息)。这节省了很多 CLI 参数,并阻止密码出现在进程列表中(注意 nifi 的密码加密是可能的,但本文未涉及)。

  6. 启动 Nifi 和 Nifi-Registry 容器,并将它们各自的 conf 文件夹的内容复制到主机(/opt/nifi-registry/nifi-registry-current/conf 和 /opt/nifi/nifi-current/conf) . 这允许我们自定义和持久化配置。

  7. 修改 Nifi 和 Nifi-registry 的 conf/authorizers.xml 文件以设置 LDAP 身份验证,并添加复合身份验证提供程序(允许本地和 ldap 用户)。我们需要两者来为连接到注册表的任何 Nifi 节点添加用户本地帐户(可以通过 LDAP 完成,但这种方式更容易)。

  1. Performance Mod - 可选 - 修改 conf/bootstrap.conf 以增加 Java 堆大小(如果需要)。还更新安全限制(文件和进程限制)。
  2. 从容器中提取 OS Java 密钥库,并将公司证书链添加到其中。注意:Nifi 和 nifi-registry java 密钥库在容器中的位置略有不同。我需要将 CA 证书注入到这些密钥库中,以确保 Nifi 处理器能够解析 SSL 信任链(我需要这个主要用于我们编写的一些询问 LDAP 的自定义 nifi 处理器)。
  3. 运行容器,为持久数据安装卷,并包含您的 certs 文件夹和 OS Java 密钥库:

注意:在启动容器之前,请确保已安装卷的 SELinux 上下文(如果适用于您的操作系统)和权限 (1000:1000) 是正确的。

配置容器

  1. 浏览到https://hostname.domain.com/nifi(我们将 8443 重定向到 443)和https://hostname2.domain.com:18443/nifi-registry
  2. 以您在配置文件中提供的初始管理员身份登录两者
  3. 使用 SSL 证书的完整 DN 添加新用户帐户,例如 CN=machinename、OU=InfoTech、O=Big Company、C=US。Nifi 和注册表的两端都需要此帐户才能连接,并且获取正确的名称很重要。可能有一种更简单的方法来确定 DN,但我在浏览器中检查了证书后进行了逆向工程。我将“主题名称”标题下列出的所有内容从底部条目向上写出来。
  4. 在nifi中为账号设置权限,添加“代理用户请求”、“访问控制器(视图)”和“访问控制器(修改)”。
  5. 在 nifi 注册表中为帐户设置权限,添加“可以代理用户请求”、“读取存储桶”。
  6. 根据需要设置其他用户/组权限

设置并连接到注册表

  1. 在 Nifi Registry 中创建存储桶
  2. 在 Nifi (Controller Settings -> Registry Clients) 中,添加注册表的 url:https://hostname.domain.com:18443
  3. 选择一个处理器或进程组,右键单击,版本 -> 启动版本控制

应该是这样!

我发现 Nifi 在连接到注册表时在传达错误方面很糟糕。我在尝试连接时遇到了一系列错误。获得有用错误的唯一方法是在 nifi 注册表上的 conf/bootstrap.conf 中添加一个新条目:

重新启动 Nifi Registry 容器后,您应该开始在 logs/nifi-registry-bootstrap.log 中看到 SSL 调试信息。例如,当 Nifi 报告“未知证书”时,Nifi Registry 调试日志包含:

INFO [NiFi logging handler] org.apache.nifi.registry.StdOut sun.security.validator.ValidatorException: Extended key usage does not permit use for TLS client authentication

我希望这是有帮助的。

0 投票
1 回答
122 浏览

apache-nifi - 如何更新断开连接的 NiFi-Registry?

服务器上有NiFi和NiFi-Registry,没有连接,我无法通过本地NiFi实例连接到NiFi-Registry。但是我可以通过远程桌面访问NiFi和NiFi-Registry。

我的本地开发系统上安装了另一个版本的 NiFi 和 NiFi-Registry。有没有办法离线更新(同步)远程 NiFi-Registry 流并将新更新应用到远程 NiFi?

在此处输入图像描述

0 投票
1 回答
387 浏览

mongodb - 如何使用 PutMongo 将 json 数组插入 Apache Nifi 中的 mongodb 集合?

我正在尝试使用 Apache nifi 中的 Putmongo 处理器将 json 数组插入 mongodb。但我收到一个错误:

这是我的json:

另外,我正在附加 Putmongo 配置PutMongo 配置

这是我的完整 Apache 流程:

GetFile CSV -> ConvertRecord to Json -> QueryRecord -> MergeContent -> PutMongo

0 投票
0 回答
373 浏览

apache-nifi - 安全环境中的 Apache Nifi 和注册表 - 存储桶不可用

桶不可用

这是我们的设置:

  • 设置安全的 nifi

  • 设置安全注册表

  • 都在同一台机器上

  • 在注册表中创建用户 CN=[hostname], OU=NiFi 对存储桶具有读取权限并启用代理用户请求

  • 使用 https://[hostname]:[port] 在 nifi 实例中创建注册表客户端

  • 尝试在进程组上启动版本控制时,存储桶正在加载一瞬间,然后显示->“没有可用的存储桶”

  • 在 DEBUG 级别激活登录,可以看到代理请求,但没有授权

  • 当使用 netstat 监听注册端口时,我们可以看到注册正在监听该端口

  • 尝试通过 nifi 检索存储桶时,已建立连接,但看不到存储桶

附加信息:

  • 我们创建了存储桶,将管理员用户和用于注册表中连接的用户添加到他们的策略中。
  • 在尝试检索存储桶时,我们没有遇到任何错误,无论是在 UI 中还是在日志中的任何位置(已激活最高日志记录级别)。
  • 我们已经看过几个设置视频和许多开放线程,但建议的解决方案并不能解决我们的问题。
  • 我们怀疑存在权限问题,但无法检测到问题的根源
  • 如有必要,可以提供日志
0 投票
1 回答
346 浏览

ssl - 无法对位于 HAProxy 服务器后面的 NiFi/NiFi Registry 实例进行身份验证

我有一个位于 HAProxy 服务器后面的 NiFi 和 NiFi Registry 实例。NiFi 实例均使用 SSL 保护。我无法将 SSL 信息从代理服务器传递到 NiFi 服务器。我也尝试过 SSL Passthrough,但这还有一些其他限制。

我当前的 HAProxy 配置如下所示:

当我浏览到https://xx.xxx.xxx.xx:443/nifi-registry并选择客户端证书时,我得到了 NiFi 注册表 UI,但没有使用我的客户端用户登录。我无法将我的 SSL 信息传递给 NiFi 服务器。按照文档,我设置了一些标题,但它们似乎没有效果。

我在这里错过了什么吗?

编辑

因此,正如评论中所建议的和上面提到的,我还在 tlc 模式下尝试了 SSL Passthrough。有了这个,我设法将 SSL 身份验证传递给 NiFi 服务器,但我遇到了“无效的主机头”消息。

我的 HAProxy 配置:

浏览到 [public-haproxy-server-domain]:1443 时,我在身份验证后获得了注册表 ui。浏览到 [public-haproxy-server-domain]:2443 时,身份验证后出现以下错误。

我的 NiFi 配置是

在此处输入图像描述

0 投票
1 回答
90 浏览

apache-nifi - 如何重命名 NiFi Registry 中的流程?

NiFi Registry 目前允许重命名存储桶,但不允许重命名。我怎样才能重命名一个?我查看了文档,但找不到任何解决方案。

我正在使用 NiFi v1.9.0

提前致谢,