ThingsBoard IoT Gateway部署实战:Docker、系统服务和生产环境配置

【免费下载链接】thingsboard-gateway Open-source IoT Gateway - integrates devices connected to legacy and third-party systems with ThingsBoard IoT Platform using Modbus, CAN bus, BACnet, BLE, OPC-UA, MQTT, ODBC and REST protocols. 【免费下载链接】thingsboard-gateway 项目地址: https://gitcode.com/gh_mirrors/th/thingsboard-gateway

ThingsBoard IoT Gateway是一款开源的物联网网关解决方案,能够将连接到传统系统和第三方系统的设备通过Modbus、CAN总线、BACnet、BLE、OPC-UA、MQTT、ODBC和REST等协议与ThingsBoard IoT平台集成,为物联网项目提供强大的数据桥接能力。

一、Docker快速部署:3分钟启动网关服务 🚀

Docker是部署ThingsBoard IoT Gateway最快捷的方式,尤其适合开发测试和快速验证场景。项目提供了完整的Docker配置文件,位于docker/Dockerfiledocker/docker-compose.yml

1.1 环境准备

首先确保已安装Docker和Docker Compose,然后克隆仓库:

git clone https://gitcode.com/gh_mirrors/th/thingsboard-gateway
cd thingsboard-gateway

1.2 配置访问令牌

编辑docker/docker-compose.yml文件,替换环境变量中的YOUR_ACCESS_TOKEN为ThingsBoard平台生成的网关访问令牌:

environment:
  - TB_GW_HOST=host.docker.internal
  - TB_GW_PORT=1883
  - TB_GW_ACCESS_TOKEN=YOUR_ACCESS_TOKEN  # 替换为实际令牌

1.3 启动服务

执行以下命令启动网关容器:

cd docker
docker-compose up -d

Docker Compose会自动创建三个持久化卷:

  • tb-gw-config:存储配置文件
  • tb-gw-logs:存储日志数据
  • tb-gw-extensions:存储扩展插件

查看容器状态:

docker-compose ps

二、系统服务部署:生产环境的可靠选择 🛡️

对于生产环境,推荐使用系统服务方式部署,确保网关服务随系统自动启动并具备故障恢复能力。项目提供了Systemd服务配置文件for_build/etc/systemd/system/thingsboard-gateway.service

2.1 安装依赖

首先安装Python环境和必要依赖:

sudo apt update
sudo apt install python3 python3-venv python3-pip

2.2 配置服务

将服务文件复制到系统目录:

sudo cp for_build/etc/systemd/system/thingsboard-gateway.service /etc/systemd/system/

服务配置关键参数说明:

[Service]
User=thingsboard_gateway       # 运行用户
Group=thingsboard_gateway      # 运行组
WorkingDirectory=/var/lib/thingsboard_gateway  # 工作目录
ExecStart=/var/lib/thingsboard_gateway/venv/bin/python3 -c "from thingsboard_gateway.tb_gateway import daemon; daemon()"  # 启动命令
Restart=on-failure             # 故障自动重启

2.3 启动服务

sudo systemctl daemon-reload
sudo systemctl enable thingsboard-gateway
sudo systemctl start thingsboard-gateway

检查服务状态:

sudo systemctl status thingsboard-gateway

三、生产环境核心配置优化 ⚙️

生产环境需要针对性能、可靠性和安全性进行特殊配置,主要配置文件为thingsboard_gateway/config/tb_gateway.json

3.1 ThingsBoard平台连接配置

"thingsboard": {
  "host": "thingsboard.cloud",  # ThingsBoard服务器地址
  "port": 1883,                 # MQTT端口
  "security": {
    "type": "accessToken",      # 认证方式
    "accessToken": "YOUR_ACCESS_TOKEN"  # 网关访问令牌
  },
  "qos": 1,                     # MQTT QoS级别
  "maxPayloadSizeBytes": 8196   # 最大 payload 大小
}

3.2 存储配置优化

生产环境建议使用文件存储替代内存存储,提高数据持久性:

"storage": {
  "type": "file",               # 存储类型:file/sqlite/memory
  "data_folder_path": "/var/lib/thingsboard_gateway/data/",  # 数据存储路径
  "max_file_count": 10,         # 最大文件数
  "max_records_per_file": 10000, # 每个文件最大记录数
  "messages_ttl_in_days": 7     # 消息保留时间
}

3.3 连接器配置

在配置文件的connectors数组中添加所需协议的连接器,例如Modbus TCP连接器:

"connectors": [
  {
    "name": "Modbus TCP Connector",
    "type": "modbus",
    "configuration": "modbus.json"
  }
]

对应的Modbus配置文件为thingsboard_gateway/config/modbus.json

3.4 安全配置

  • 启用设备过滤,仅允许指定设备连接:
"deviceFiltering": {
  "enable": true,
  "filterFile": "list.json"  # 设备白名单文件
}
  • 配置速率限制,防止流量过载:
"rateLimits": "DEFAULT_TELEMETRY_RATE_LIMIT",
"dpRateLimits": "DEFAULT_TELEMETRY_DP_RATE_LIMIT"

四、常见问题解决与最佳实践 📝

4.1 日志查看

Docker部署日志:

docker-compose logs -f tb-gateway

系统服务日志:

journalctl -u thingsboard-gateway -f

日志配置文件位于thingsboard_gateway/config/logs.json

4.2 配置热重载

启用远程配置功能后,网关会自动检测配置文件变化并应用:

"remoteConfiguration": true,
"checkConnectorsConfigurationInSeconds": 60  # 配置检查间隔

4.3 高可用部署建议

  • 使用负载均衡器实现多网关实例的负载分担
  • 配置NFS共享存储确保多实例数据一致性
  • 定期备份配置文件和数据存储目录

五、总结

ThingsBoard IoT Gateway提供了灵活多样的部署方式,无论是快速开发测试的Docker容器,还是稳定可靠的系统服务,都能满足不同场景的需求。通过合理配置存储、安全和连接器参数,可以构建高效、可靠的物联网数据集成平台,为企业物联网项目提供强大支持。

部署完成后,您可以通过配置不同的协议连接器,轻松实现各类工业设备与ThingsBoard平台的无缝对接,开启物联网应用开发之旅。

【免费下载链接】thingsboard-gateway Open-source IoT Gateway - integrates devices connected to legacy and third-party systems with ThingsBoard IoT Platform using Modbus, CAN bus, BACnet, BLE, OPC-UA, MQTT, ODBC and REST protocols. 【免费下载链接】thingsboard-gateway 项目地址: https://gitcode.com/gh_mirrors/th/thingsboard-gateway

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐