3、ThingsBoard平台入门:架构、安装与基础管理

好,咱们正式开始接触 ThingsBoard 这个平台。说实话,我第一次接触它的时候,心里也犯嘀咕——这玩意儿到底能不能扛住生产环境?后来在几个项目里摸爬滚打了一圈,嗯,我可以负责任地说:ThingsBoard 的架构设计,确实是为 IoT 场景量身打造的。

3.1 ThingsBoard 架构:一张图看懂全局

我个人习惯,学一个新平台,先看它的架构图。ThingsBoard 的核心模块,说白了就这几块:

  • 规则引擎:这是大脑。数据进来怎么处理、要不要告警、要不要转发,全由它说了算。
  • 传输层:负责跟设备打交道。支持 MQTT、CoAP、HTTP,当然也包括咱们的 LoRaWAN 网关转发上来的数据。
  • 实体管理:设备、租户、客户、资产……这些“东西”怎么组织,怎么关联,归它管。
  • 数据存储:时序数据(比如温度、湿度)和属性数据(比如设备位置)分开存,性能会好很多。

我在项目中遇到过一个问题:设备上报频率很高,结果数据库扛不住了。后来发现是没把时序数据和属性数据分开存储。你想想看,一个温度值每秒上报一次,跟设备固件版本这种几乎不变的数据混在一起存,能不卡吗?

核心要点:ThingsBoard 的架构是“松耦合”的。传输层只管收数据,规则引擎只管处理数据,存储层只管存数据。这种设计的好处是——你可以单独升级某个模块,不影响其他部分。

3.2 Docker 方式安装 ThingsBoard

安装 ThingsBoard,我强烈推荐用 Docker。为什么?因为省心。你不需要操心 Java 环境、数据库配置、依赖冲突……一个 docker-compose.yml 文件,搞定一切。

我曾经在一台 CentOS 7 上手动安装,折腾了整整一天,最后发现是 PostgreSQL 版本不兼容。从那以后,我再也不手动装了。

3.2.1 前提条件

  • 一台 Linux 服务器(Ubuntu 20.04 或 CentOS 7+ 都行)
  • Docker 和 Docker Compose 已安装
  • 至少 4GB 内存(我建议 8GB,否则跑起来会卡)

3.2.2 安装步骤

第一步,拉取 ThingsBoard 的 Docker Compose 文件:

mkdir -p ~/thingsboard
cd ~/thingsboard
wget https://raw.githubusercontent.com/thingsboard/thingsboard/master/docker/docker-compose.yml

第二步,启动服务:

docker-compose up -d

嗯,就这么简单。第一次启动会拉取镜像,大概需要几分钟。等所有容器都变成 "Up" 状态,就说明安装成功了。

小提示:启动后,访问 http://你的服务器IP:8080,默认用户名是 sysadmin@thingsboard.org,密码是 sysadmin。第一次登录会要求你修改密码。

3.2.3 验证安装

登录成功后,你会看到一个仪表盘。如果能看到设备列表、租户管理这些菜单,恭喜你,安装成功了。

我记得有一次,我帮一个客户部署,他死活登录不上去。排查了半天,发现是防火墙没开 8080 端口。嗯,这种低级错误,谁还没犯过呢?

3.3 租户与客户管理

ThingsBoard 的权限模型,我简单给你捋一捋:

  • 系统管理员:最高权限,管理所有租户。
  • 租户:可以理解为一个“企业”或“项目”。每个租户有自己的设备、仪表盘、规则链。
  • 客户:租户下面的“用户”。比如一个智慧园区项目,租户是物业公司,客户就是各个楼宇的管理员。

你想想看,这种分层设计,天然适合 SaaS 场景。一个 ThingsBoard 实例,可以同时服务多个客户,数据完全隔离。

3.3.1 创建租户

用系统管理员账号登录,进入“租户”菜单,点击“添加租户”。填写租户名称、邮箱,保存即可。

注意:租户创建后,系统会自动生成一个租户管理员账号。默认密码会发送到填写的邮箱里。如果收不到邮件,可以去“邮件设置”里检查一下 SMTP 配置。

3.3.2 创建客户

切换到租户管理员账号,进入“客户”菜单,点击“添加客户”。客户可以绑定多个设备,也可以拥有自己的仪表盘。

我在项目中遇到过一个问题:客户说看不到设备数据。后来发现,是忘记把设备分配给客户了。嗯,权限管理这事儿,细节决定成败。

3.4 设备管理基础

设备管理,是 ThingsBoard 最核心的功能之一。说白了,就是怎么把一台物理设备“映射”到平台上。

3.4.1 添加设备

进入“设备”菜单,点击“添加设备”。你需要填写:

  • 设备名称:比如“温湿度传感器-01”
  • 设备类型:比如“temperature_sensor”
  • 凭证:设备接入平台的“钥匙”。默认是 Access Token,你也可以用 MQTT 基本认证或 X.509 证书。

保存后,系统会生成一个 Access Token。这个 Token 很重要,设备连接平台时要用到。

3.4.2 设备凭证

ThingsBoard 支持三种凭证方式:

凭证类型 适用场景 安全性
Access Token 快速测试、原型验证
MQTT 基本认证 生产环境,需要用户名/密码
X.509 证书 高安全要求场景

我个人习惯,开发阶段用 Access Token,方便调试。生产环境一定要换成证书或用户名密码。你想想看,Token 泄露了,别人就能冒充你的设备上报假数据,后果很严重。

3.4.3 设备数据查看

设备添加成功后,你可以:

  • 查看设备的最新遥测数据(温度、湿度等)
  • 查看设备属性(固件版本、位置等)
  • 查看设备事件(上线、下线、告警等)

嗯,这里要注意:设备必须主动上报数据,你才能在平台上看到。如果设备没上线,数据就是空的。我曾经被客户问过:“为什么设备添加了,但看不到数据?”——结果发现设备根本没通电。

避坑指南:设备添加后,建议先用 MQTT 客户端(比如 MQTTX)模拟一下数据上报,确认平台能正常接收。别等到设备部署到现场了,才发现凭证配错了。

3.5 本章小结

这一章,咱们把 ThingsBoard 的架构、安装、租户客户管理、设备管理基础都过了一遍。说白了,就是让你知道:

  • ThingsBoard 怎么装(Docker 方式,省心)
  • 权限怎么分(系统管理员 → 租户 → 客户)
  • 设备怎么加(名称、类型、凭证)

下一章,咱们会深入规则引擎,看看数据进来之后,到底是怎么流转的。到时候,我会分享一个我在智慧农业项目里踩过的坑——规则链配置错了,导致告警短信发给了错误的客户。嗯,那叫一个尴尬。