赞
踩
更新日志:
官方为 ThingsBoard-Gateway 提供了多种安装部署方案,可以根据不同系统进行安装。
采用 centOS 7 作为部署服务器,具体安装步骤如下(注:采用该方法安装2.7以上版本时存在问题,安装会失败):
下载 ThingsBoard-Gateway 安装包:
wget https://github.com/thingsboard/thingsboard-gateway/releases/latest/download/python3-thingsboard-gateway.rpm
使用 yum 工具安装 ThingsBoard-Gateway:
sudo yum install -y ./python3-thingsboard-gateway.rpm
完成后查看 ThingsBoard-Gateway 的运行状态:
systemctl status thingsboard-gateway
此时服务运行可能会报错,因为还没有对服务的相关配置进行更改。
服务器安装 docker 后,直接执行以下命令执行安装最新发行版本(本手册版本为 3.4):
docker run -d -it -v ~/.tb-gateway/logs:/thingsboard_gateway/logs -v ~/.tb-gateway/extensions:/thingsboard_gateway/extensions -v ~/.tb-gateway/config:/thingsboard_gateway/config --name tb-gateway -p 60000-61000:60000-61000 --restart always thingsboard/tb-gateway
其中,-v 指令后冒号之前的文件路径为容器内部文件的挂载位置:
~/.tb-gateway/logs
:日志挂载路径;
~/.tb-gateway/extensions
:网关扩展目录挂载路径(各种协议连接器);
~/.tb-gateway/config
:配置文件挂载路径;
安装完成后,容器将自动启动,此时查看日志将看到网关连接存在错误,需要修改配置文件。
注:使用 docker 进行安装部署时,需要注意 docker 版本问题,不同版本的 docker 可拉取到的最新 tb-gateway 镜像的版本不同! 使用docker --version
命令可查看 docker 版本。
使用 docker 版本为 18.03.1-ce 时,tb-gateway 最新版本镜像为 2.9;
使用 docker 版本为时,tb-gateway 最新版本镜像为 3.4.4(截至 2024-01-27);
【2024-01-27】注:版本 3.4.4\3.4.3 在使用 opcua 协议时存在问题。
建议使用 3.4.2 版本!,本文所有测试及配置内容均为 3.4.2 版本。
采用 rpm 安装包进行安装的配置文件路径为/etc/thingsboard-gateway/config
,使用 docker 安装的配置文件则在宿主机的挂载路径~/.tb-gateway/config
。该文件夹内包含有基础配置文件 tb_gateway.json,以及各种协议的配置文件,如 mqtt.json、modbus.json、opcua.json 等。
通用的基础配置文件 tb_gateway.json 用于配置到 thingsboard 平台的连接、存储模式以及各种协议连接器。
该模块中主要配置网关到平台的连接参数,核心参数包括:
host
:配置 tb 平台服务器地址;
port
:配置 tb 平台网关消息接收的端口,默认为 1883(即平台 MQTT 服务器端口);
remoteShell
:官方未解释,与配置远程 shell 指令相关(后续补充),默认 false;
remoteConfiguration
:官方未解释,配置是否使用远程配置(3.4.2 以后版本新功能),建议 false;
statistics
:配置统计收集数据并发送 tb 作为网关设备的属性进行存储(若需要使用的话需要额外的配置文件对要采集的参数进行定义,此处暂不讲解);
enable
:配置是否启用该功能;
statsSendPeriodInSeconds
:配置统计收集数据的传输间隔,默认为 3600;
configuration
:配置采集数据配置文件;
deviceFiltering
:该功能是可选的,用于配置设备筛选,可以配置筛选允许向 tb 发送数据的设备(若需要使用的话需要额外的配置文件定义筛选设备的规则,此处暂不讲解);
enable
:配置是否启用该功能;
filterFile
:配置设备过滤配置文件;
maxPayloadSizeBytes
:官方未解释,最大的消息负载字节数,默认 1024;
minPackSendDelayMS
:配置发送数据包之间的延迟,配置过小会导致 CPU 使用量上升;
minPackSizeToSend
:官方未解释,配置最小的发送数据包大小,默认 500;
checkConnectorsConfigurationInSeconds
:官方未解释,配置检查连接器配置的时间,默认 60 秒;
handleDeviceRenaming
:官方未解释;
security
:安全配置;
accessToken
:配置 tb 平台上网关设备对应的 token;qos
:mqtt 协议消息质量等级,默认为 1;
checkingDeviceActivity
:该功能是可选的,用于配置监控设备的活动;如果对该部分内容进行了配置,网关将每个一段时间对设备的活动状态进行检查;
checkDeviceInactivity
:配置是否启用该功能;
inactivityTimeoutSeconds
:配置设备的活跃超时时间,超过该时间的没有响应的设备将被认为处于非活跃状态,默认 200 秒;
inactivityCheckPeriodSeconds
:配置设备活跃性检查的周期,默认 500 秒;
存储配置模块主要用于设置数据发送到 tb 平台之前如何进行保存,即采集数据的持久化配置,tb-gateway 提供了三种持久化的方式,分别为:
memory
:内存存储,将接收到的数据保存到 RAM 内存中;
file
:文件存储,将接收到的数据保存到硬盘上;
sqlite
:sqlite 存储,将接收到的数据保存到 .db 文件中;
通过type
参数可以指定上述三种模式,并对各模式中的参数进行配置,网关默认设置为内存存储模式,其可配置参数包括:
read_records_count
:从存储中获取并发送至 tb 平台的消息数量;
max_records_count
:存储中可存储的最大消息数量(超出的消息将丢失);
配置示例:
"storage": {
"type": "memory",
"read_records_count": 100,
"max_records_count": 100000
}
选用文件存储模式时,其可配置参数包括:
data_folder_path
:
max_file_count
:
max_read_records_count
:
max_records_per_file
:
配置示例:
"storage": {
"type": "file",
"data_folder_path": "./data/",
"max_file_count": 10,
"max_read_records_count": 10,
"max_records_per_file": 10000
}
选用 sqlite 存储模式时,其可配置参数包括:
data_file_path
:
messages_ttl_check_in_hours
:
messages_ttl_in_days
:
配置示例:
"storage": {
"type": "sqlite",
"data_file_path": "./data/data.db",
"messages_ttl_check_in_hours": 1,
"messages_ttl_in_days": 7
}
该模块目前未测试,官方文档未进行解释,待验证;
该模块用于配置要启动的连接器,每一个连接器需要执行下列 3 个参数:
useGRPC
:可选配置参数,用于配置当前连接器是否开启 rpc 功能,默认为 true;
name
:指定连接器名称;
type
:连接器类型;
configuration
:连接器的配置文件名称;
配置示例:
"connectors": [ { "type": "mqtt", "name": "MQTT Broker Connector", "configuration": "mqtt.json" }, { "type": "modbus", "name": "Modbus Connector", "configuration": "modbus.json" }, { "type": "opcua", "name": "OPC-UA Connector", "configuration": "opcua.json" } ]
在修改通用配置文件 tb_gateway.yaml 之前,首先需要在 tb 平台上创建对应的网关设备,如下所示:
完成网关设备创建后,修改 tb_gateway.yaml 配置文件,配置 host、port 以及 accessToken 字段,分别为 tb 平台的服务地址、tb 平台 MQTT 端口号以及网关设备的访问令牌(设备详情中点击“复制访问令牌”按钮获取,也可自定义,详见 thingsboard 使用手册)。简单的配置示例如下:
{ "thingsboard": { "host": "192.168.XX.XXX", "port": 1883, "remoteShell": false, "remoteConfiguration": true, "statistics": { "enable": true, "statsSendPeriodInSeconds": 3600 }, "deviceFiltering": { "enable": false, "filterFile": "list.json" }, "maxPayloadSizeBytes": 1024, "minPackSendDelayMS": 200, "minPackSizeToSend": 500, "checkConnectorsConfigurationInSeconds": 60, "handleDeviceRenaming": true, "security": { "type": "accessToken", "accessToken": "YqZ0moqfS1srMt4OXDWP" }, "qos": 1, "checkingDeviceActivity": { "checkDeviceInactivity": false
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。