简介
Node-RED 是一个流数据编程框架,可以用于可视化搭建物联网应用、机器学习模型等。而 node-red-contrib-logstash 是一个 Node-RED 的插件,用于将 Node-RED 工作流程中的数据发送到 Logstash 中进行处理。
本文将详细介绍如何使用 npm 包 node-red-contrib-logstash 实现 Node-RED 数据传输到 Logstash,并提供相关示例代码,希望能够帮助读者快速上手这一插件。
安装
首先,我们需要安装 Node-RED。在安装 Node-RED 之后,可以通过 npm 命令来安装 node-red-contrib-logstash:
npm install node-red-contrib-logstash -g
安装成功后,我们需要重启 Node-RED 生效该插件,可以使用以下命令:
node-red-stop node-red-start
配置
在 Node-RED 中使用 node-red-contrib-logstash
在 Node-RED 工作流程中使用 node-red-contrib-logstash 插件时,我们需要添加一个 Logstash 输出节点。在该节点的配置菜单中,我们需要填写以下信息:
- Host:Logstash 的地址
- Port:Logstash 的端口号
- Protocol:Logstash 的协议类型(http/udp/tcp)
- Index/Type:数据的索引和类型,可用于在 Elasticsearch 上对数据进行检索排序等操作
- 附加信息:需要传输给 Logstash 的附加信息,以 JSON 的格式进行传输
在 Logstash 中配置
在 Logstash 中,我们需要添加一个输入插件,该插件将会监听之前在 Node-RED 中配置好的地址和端口号,处理接收到的数据并将之导入至 Elasticsearch。
以下为一个简单的 Logstash 配置文件示例:
-- -------------------- ---- ------- ----- - --- - ---- -- ---- ----- -- ---------- - - ------ - ------------- - ----- -- ----------------------- ----- -- ---------- -------- -- -------------------- - -
在该示例中,我们使用了 tcp 插件作为数据输入源,同时使用了 json_lines 编解码方式。在 output 部分,我们将接收到的数据导入至 Elasticsearch 中,并为其提供了一个数据模板。
示例代码
以下为一个基于 node-red-contrib-logstash 的 Node-RED 应用程序示例,用于将实时的温度数据传输至 Logstash:
-- -------------------- ---- ------- -- ----- ----------------- ------- --------- ---- ------------------ ------- --- -------- - - ---- --------- - -- --------- ----- ---------- --- ------- ------ ------------ ---- -------- --- -------------- ------- ---- ---- ---- ---- -------- - - ----------------- - - -- - ----- ------------------ ------- ----------- ---- ------------------ ------- ------- ------------- ------- ---- ---- - -------------- - -- - --------------------------------------- - --- ---------------- ------------------ ------ ---------- -- -------- -- ---- ---- ---- ---- -------- - - ----------------- - - -- - ----- ------------------ ------- ----------- ---- ------------------ ----------- -------------- ------- ------- ----------- ------ -------- -------------- ------- --- ------ --- -------- --- --------- --- ------------ --- ---- ---- ---- ---- -------- -- --
在该示例中,我们添加了一个 inject 节点用于定时向工作流程中传输数据。在 function 节点中,我们生成随机温度数据并将之打包成 JSON 的格式进行传输。最后,我们使用 logstash 节点将数据传输至先前在 Logstash 中配置好的地址和端口号。
总结
本文详细介绍了如何在 Node-RED 中使用 npm 包 node-red-contrib-logstash 将数据传输至 Logstash,并提供了相关示例代码。通过学习本文,读者可以更加深入地了解 Node-RED 和 Logstash 在数据传输处理方面的应用,为后续的物联网应用开发、数据分析提供指导和参考。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/600557b581e8991b448d4bdc