You need to enable JavaScript to run this app.
导航
创建北向通道
最近更新时间:2024.10.18 14:43:10首次发布时间:2023.06.09 19:27:53

北向通道能够将边缘节点采集的设备属性数据流式传输到多种第三方数据接收方(如 RESTful API 终端、Kafka 消息流平台、MQTT Broker 服务器和InfluxDB 数据库),以便进行数据处理和消费。本文介绍了在边缘节点上创建北向通道的方法。

背景信息

边缘节点支持部署北向通道。一条北向通道可以配置多个数据源(source)和多个数据接收方(sink)。

  • 数据源:已接入到边缘节点的指定设备。
  • 数据接收方:目前支持 Kafka 消息流平台、MQTT Broker 服务器、InfluxDB 数据库、RESTful API 终端。

北向通道运行时,会将来自数据源的“数据点”流式传输到数据接收方。若数据点进入北向通道,而未传输到接收方,则表示传输异常。

准备工作

  • 已将节点绑定到边缘智能项目。具体内容,请参见绑定节点

  • 要传输数据到第三方接收方,您必须提前搭建好接收方(sink)环境,并获取接收方的访问地址等信息。创建北向通道时,您必须提供接收方的相关信息。针对不同接收方,需要提供的信息如下表所示。

    sink 类型

    说明

    环境搭建

    rest

    将边缘侧设备的属性数据发送到一个 RESTful API,通常用于与 HTTP/HTTPS 协议兼容的服务进行交互。

    您已经搭建 Web 服务,并获取了 Web 服务的 Url。

    kafka

    将边缘侧设备的属性数据上报到 Kafka 消息系统进行处理。

    您已经搭建了 Kafka 系统并获取了 Kafka 系统的以下参数值:Brokers、topic。

    influx2

    将边缘侧设备的属性数据上报到 InfluxDB 2.x 数据库进行实时分析。

    您已经搭建了 InfluxDB 数据库并获取了 InfluxDB 数据库的以下参数值:Url、Organization、Bucket、Measurement、Token。

    influx

    将边缘侧设备的属性数据上报到 InfluxDB 1.x 数据库进行实时分析。

    您已经搭建了 InfluxDB 数据库并获取了 InfluxDB 数据库的以下参数值:Url、Database、Measurement。

    mqtt

    将边缘侧设备的属性数据上报到 MQTT 代理服务器的主题进行处理。

    您已经搭建了 MQTT 服务器,并获取了 MQTT 服务器的以下参数值:
    MQTT 代理服务器地址 、Topic。

前提条件

升级一体机到 2.7.0 及以上版本。具体内容,请参见升级节点软件

操作步骤

  1. 登录边缘智能控制台

  2. 在左侧导航栏顶部的 我的项目 区域,选择您的项目。

  3. 在左侧导航栏,选择 设备管理 > 北向通道

  4. 北向通道 页面,单击 创建北向通道

  5. 创建北向通道 页面,根据以下配置说明完成相关配置。

    区域

    配置项

    说明

    基本信息

    名称

    为北向通道设置一个名称。输入要求如下:

    • 允许使用英文大小写字母、数字、下划线(_)、连字符(-)。长度不超过 32 个字符。
    • 开头和结尾不允许使用特殊字符(下划线(_)、连字符(-)),并且不允许使用连续的特殊字符。

    描述

    为北向通道添加描述信息。长度不超过 128 个字符。

    数据源配置

    节点

    选择一个或多个节点。
    北向通道将部署到您选择的节点上。

    设备模板
    驱动模板
    设备实例

    通过设备模板、驱动模板和设备实例来确定北向通道的数据源,此三者的交集决定了要传输的设备数据。
    例如:

    • 选择一个特定的 设备模板,并将 驱动模板设备实例 置为 全部,表示凡是使用了选定设备模板的设备均适用。
    • 选择一个特定的 驱动模板,并将 设备模板设备实例 置为 全部,表示凡是使用了选定驱动模板的设备均适用。
    • 选择一个特定的 设备实例,并将 驱动模板设备模板 置为 全部,表示只有选定的设备才适用。
    • 选择一个特定的 驱动模板设备模板,并将设备实例置为 全部,表示只有使用了选定的驱动模板和设备模板的设备才适用。

    请确保三者有交集,否则数据源配置无效。

    sink节点配置

    名称

    为 sink 节点设置一个名称。

    sink类型

    根据接收数据的目标系统,选择对应的 sink 节点类型。支持选择:

    • rest
    • kafka
    • influx2
    • influx
    • mqtt

    参数配置

    系统根据您选择的 sink 类型,会自动生成对应的参数配置模板。您可以根据需要配置所需参数。相关内容,请参见sink 节点参数配置说明

    连通性测试

    单击 连通性测试,检查边缘节点和接收方之间的网络是否连通。

    数据格式

    您可以根据接收方对数据格式的特定要求,定义数据转发格式,边缘智能平台会将采集的设备原始数据按照定义的格式重新组织并转发。如果未定义数据格式,平台将根据接收方协议自动使用默认数据格式进行转发。

    说明

    目前仅允许为 rest、kafka 和 mqtt 类型的 sink 节点配置数据格式。

    在配置数据格式时,可以选择一个设备模板并通过数据格式预览来确认数据格式是否符合预期。

    • 设备模板:从下拉列表选择一个设备模板,边缘智能平台会根据所选设备模板中的物模型,渲染出与该设备模板相匹配的数据格式。
    • 数据格式:从下拉列表选择 1 种数据格式。目前支持 4 种数据格式:
      • json-simple
      • json-influx
      • csv
      • yaml

      说明

      除了以上内置数据格式之外,您还可以对转发格式进行自定义。自定义数据格式具有一定难度,如有需要,请提交工单联系我们。

  6. 如果您需要将采集到的数据发送到不同的系统或服务进行进一步的处理,您可以单击 添加sink节点,继续添加其他 sink 节点。

  7. 完成以上配置后,单击右下角的 保存
    系统将在节点上部署北向通道。您可以在 北向通道 页面查看部署 状态,待北向通道的状态由 创建中 变为 运行中 后,表示该北向通道已部署成功。
    Image

sink 节点参数配置说明

根据选择的 sink 类型,您需要配置相关的参数。本节介绍不同 sink 类型的参数配置说明、示例以及部署成功北向通道后,您如何来验证通道已正常工作。

rest

参数说明
  • url:您的 Web 服务的 http/https 访问地址。

Image

配置示例
## RESTful API 终端地址,例如 https://www.example.com/api/dummy
url = "http://xx.xx.xx.xx:8000"

验证方法

如果您的 Web 服务接收到来自边缘智能节点的数据,表示通道在正常工作。
Image

kafka

参数说明

配置项

说明

brokers

Kafka 服务的外部监听地址。格式为<IP:Port>。允许输入多个地址。多个地址之间以半角逗号(,)分隔。更多信息,请参见 Apache Kafka 官网文档:Broker Configs

topic

接收上报消息的 Kafka Topic。更多信息,请参见 Apache Kafka 官网文档:Topic-Level Configs

saslAuthType

Kafka 客户端用于身份验证的 SASL 机制类型。可以设置为:

  • none
  • plain
  • scram-256
  • scram-512

默认为 none。

配置示例
## Kafka brokers 的 URL 列表
brokers = "192.168.1.100:9092,192.168.1.101:9092,192.168.1.102:9092"
## 订阅主题
topic = "my_kafka_topic"
## Kafka 的 Sasl 认证类型,可设置为 none, plain, scram-256, scram-512。默认为 none。
saslAuthType = "none"

验证方法

通道部署成功后,您可以登录 Kafka 服务查看数据。当您在 Kafka 服务中查看到节点上报的设备运行数据,表示通道在正常工作。

influx2

参数说明

配置项

说明

addr

InfluxDB 实例的 URL 。

org

InfluxDB 中的组织名称,用于区分不同的用户和数据集。

bucket

InfluxDB 中存储时间序列数据的容器,相当于其他数据库中的“数据库”。

measurement

InfluxDB 中数据的度量名称,用于组织和查询数据,相当于关系数据库中的“表名”。

token

用于 InfluxDB 身份验证的 API 令牌,提供对数据库的访问权限。

precision

时间戳的精度设置,可以设置为 ns(纳秒)、us(微秒)、ms(毫秒)或 s(秒)。
默认是 ms。

说明

您可以使用 Telegraf 插件导出 InfluxDB 的配置信息。更多信息,请参见 InfluxDB 官方文档:Manually configure Telegraf

配置示例
# InfluxDB v2 服务器地址,假设使用默认端口 8086
addr = "http://localhost:8086"

# InfluxDB 组织名称
org = "my-organization"

# InfluxDB bucket 名称
bucket = "my-bucket-name"

# 测量名称,表示数据的类型或分类
measurement = "sensor-data"

# InfluxDB API 令牌
token = "my-api-token"

# 时间戳的精度,默认是毫秒
precision = "ms"

验证方法

通道部署成功后,您可以登录 InfluxDB 服务查看数据。当您在 InfluxDB 服务中查看到节点上报的设备运行数据,表示通道在正常工作。

mqtt

参数说明

配置项

说明

server

MQTT 服务器的地址,格式通常为 tcp://<host>:<port>

topic

客户端发布消息的主题名称。消息将被发送到这个主题,以便订阅该主题的其他客户端可以接收消息。

配置示例
# MQTT 服务器地址
server = "tcp://mqtt.example.com:1883"

# MQTT 消息主题
topic = "home/analysis/result"

验证方法

通道部署成功后,您可以使用配置的连接信息连接到 MQTT 服务器,然后订阅配置的主题,以便开始接收消息。当您在 MQTT 服务中接收到节点上报的设备运行数据,表示通道在正常工作。

Influx

参数说明

配置项

说明

addr

您的 InfluxDB 实例的 URL,客户端将使用此地址连接到数据库。
格式为 http://<host>:<port>

database

您要写入数据的 InfluxDB 数据库的名称。

measurement

InfluxDB 中数据的度量名称,用于组织和查询数据。

precision

时间戳的精度设置,可以设置为 ns(纳秒)、us(微秒)、ms(毫秒)或 s(秒)。
默认是 ms。

配置示例
# InfluxDB v1.x 服务器地址
addr = "http://localhost:8086"
# InfluxDB 数据库名
database = "my_database"

# 数据的度量名称
measurement = "sensor_data"

# 时间戳的精度,默认为毫秒。
precision = "ms"

验证方法

通道部署成功后,您可以登录 InfluxDB 服务查看数据。当您在 InfluxDB 服务中查看到节点上报的设备运行数据,表示通道在正常工作。