- 概述
- 步骤1. 拉取ThingsBoard Edge镜像
- 步骤2. 克隆ThingsBoard PE Docker compose脚本
- 步骤3. 配置ThingsBoard Edge数据库和队列服务
- 步骤4. 创建并检查所需主机卷
- 步骤5. 安装并运行ThingsBoard Edge
- 升级
- 生成HTTPS证书
- 下一步
| 自 TB Edge 版本 4.0.1 起可用 |
概述
Edge clustering(Edge集群) 指将多个 Edge节点 连接并编组成集群,在 网络边缘 协同工作。 集群适用于大规模工业物联网、智慧城市、工厂或单区域数千设备的场景。
Edge特定注意事项:
- 所有 Edge节点 连接到 同一数据库。
- Devices 可根据负载均衡连接到任意节点。
- Edge节点 共享工作负载并具备本地故障转移能力。
- Edge Cluster 会将聚合数据同步到 ThingsBoard Cloud。

更多详情请参阅微服务架构页面。
前置条件
ThingsBoard 微服务在 Docker环境 中运行。 开始前,请确保系统已安装 Docker CE 和 Docker Compose。
安装 Docker:
步骤1. 拉取ThingsBoard Edge镜像
登录 Docker Hub并使用命令拉取镜像:
1
docker pull thingsboard/tb-edge-pe:4.3.0.1EDGEPE
步骤2. 克隆ThingsBoard PE Docker compose脚本
1
2
git clone -b release-4.0.0 https://github.com/thingsboard/thingsboard-edge-pe-docker-compose.git tb-edge-pe-docker-compose --depth 1
cd tb-edge-pe-docker-compose
步骤3. 配置ThingsBoard Edge数据库和队列服务
在执行初始安装前,配置 ThingsBoard Edge 使用的数据库类型。要设置数据库类型,请修改 环境文件 (.env) 中的 DATABASE 变量值。
ThingsBoard Edge 目前支持两种用于存储消息的消息系统/代理:
- In Memory 队列实现不适用于任何类型的集群部署。
- Kafka 推荐用于生产部署,且为默认选项。该队列类型已广泛用于ThingsBoard生产环境。
要编辑 ThingsBoard Edge .env 文件,请运行以下命令:
1
nano .env
检查以下行:
1
2
3
4
5
6
DATABASE=postgres
TB_QUEUE_TYPE=kafka
CLOUD_ROUTING_KEY=PUT_YOUR_EDGE_KEY_HERE # e.g. 19ea7ee8-5e6d-e642-4f32-05440a529015
CLOUD_ROUTING_SECRET=PUT_YOUR_EDGE_SECRET_HERE # e.g. bztvkvfqsye7omv9uxlp
CLOUD_RPC_HOST=PUT_YOUR_THINGSBOARD_SERVER_DOMAIN_OR_IP_HERE # e.g. thingsboard.cloud
查看完整 .env 文件:
- CACHE: 设置缓存类型:
- redis: 设置 redis 以使用Redis单机缓存(1节点 - 1主节点)。
- redis-cluster: 设置 redis-cluster 以使用Redis集群缓存(6节点 - 3主节点,3从节点)。
- redis-sentinel: 设置 redis-sentinel 以使用Redis Sentinel缓存(3节点 - 1主节点,1从节点,1哨兵)。
- DATABASE: 将 database 值替换为:
- postgres: 设置 postgres 以使用 PostgreSQL 数据库。
- hybrid: 设置 hybrid 以使用 PostgreSQL 作为实体数据库,Cassandra 作为时序数据库。
- TB_QUEUE_TYPE: 使用 kafka 作为队列类型。集群部署不支持 in-memory 值。
- CLOUD_ROUTING_KEY: 填入您的Edge key。
- CLOUD_ROUTING_SECRET: 填入您的Edge secret。
- CLOUD_RPC_HOST: 若将 Edge 连接到 ThingsBoard Cloud (北美)/ThingsBoard Cloud (欧洲地区),使用 thingsboard.cloud / eu.thingsboard.cloud;若连接到 ThingsBoard PE Platform 的机器,则使用 IP地址。
-
MONITORING_ENABLED: 要使用 Grafana 和/或 Prometheus 服务启动集群监控,请将变量设为 true。
请在此文章中了解如何 启用下行消息监控。
步骤4. 创建并检查所需主机卷
执行以下命令为服务创建日志文件夹,并将这些文件夹的 chown 权限授予 docker 容器用户。 要更改用户,需使用 chown 命令,该命令需要 sudo 权限(脚本将提示输入 sudo 密码):
1
./docker-create-log-folders.sh
检查所有必需的卷文件夹是否可用且具有正确的所有权:
1
./docker-check-log-folders.sh
步骤5. 安装并运行ThingsBoard Edge
要运行安装,请执行以下命令:
1
./docker-install-tb.sh
要启动服务,请执行以下命令:
1
./docker-start-services.sh
如有问题,请检查edge服务日志中的错误。要查看 ThingsBoard Edge 节点日志,请执行以下命令:
1
docker-compose logs -f tb-edge1 tb-edge2 tb-edge3
要查看所有容器的状态,请使用:
1
docker-compose ps
要检查所有运行中服务的日志,请使用:
1
docker-compose logs -f
详见 docker-compose logs 命令参考。
停止并移除Docker容器
要停止服务,请使用:
1
./docker-stop-services.sh
要停止并完全移除已部署的Docker容器,请运行:
1
./docker-remove-services.sh
升级
要更新特定或所有服务(拉取更新的docker镜像并重建容器):
1
./docker-update-service.sh [SERVICE...]
其中:
- [SERVICE…]: 要更新的服务列表(在docker-compose配置中定义)。若未指定,将更新所有服务。
要升级数据库,请运行以下命令:
1
2
3
./docker-stop-services.sh
./docker-upgrade-tb.sh
./docker-start-services.sh
生成HTTPS证书
我们使用 HAproxy 代理容器流量,Web UI默认使用 80 和 443 端口。要使用有效证书启用HTTPS,请运行以下命令:
1
2
docker exec haproxy-certbot certbot-certonly --domain your_domain --email your_email
docker exec haproxy-certbot haproxy-refresh
只有通过域名访问Web UI时才会使用有效证书。 若使用IP地址访问UI,将使用自签名证书。
下一步
-
Getting started guide(入门指南)- 快速概览 ThingsBoard Edge 主要功能。预计 15–30 分钟完成:
-
Installation guides(安装指南)- 了解如何在各种操作系统上安装 ThingsBoard Edge 并连接到 ThingsBoard Server。
-
Edge 规则引擎:
-
Rule Chain Templates(规则链模板)- 了解如何使用 ThingsBoard Edge 规则链模板。
-
Provision Rule Chains from cloud to edge(从云端向 Edge 下发规则链)- 了解如何从云端向 Edge 下发边缘规则链。
-
- 安全:
- gRPC over SSL/TLS - 了解如何为 Edge 与云端之间的通信配置 gRPC over SSL/TLS。
-
功能:
-
Edge Status(Edge 状态)- 了解 ThingsBoard Edge 上的 Edge Status 页面。
-
Cloud Events(云端事件)- 了解 ThingsBoard Edge 上的 Cloud Events 页面。
-
-
使用场景:
-
Manage alarms and RPC requests on edge devices(在边缘设备上管理告警和 RPC 请求)- 本指南展示如何在 Edge 上生成本地告警并向连接到 Edge 的设备发送 RPC 请求:
-
Data filtering and traffic reduce(数据过滤与流量削减)- 本指南展示如何从 Edge 向云端仅发送过滤后的设备数据:
-
- Roadmap(路线图)- ThingsBoard Edge 路线图。