2、ThingsBoard平台搭建:Docker方式安装、源码编译、初始化配置与管理员设置

好,咱们进入实战环节的第一道坎——把ThingsBoard跑起来。

说实话,我第一次搭ThingsBoard的时候也踩了不少坑。Docker版本和源码编译各有各的脾气,选错了方式后面会很难受。今天我就把这两种方式都给你捋一遍,你根据自己手头的环境选一个就行。

2.1 环境准备:先看看你的机器够不够格

在动手之前,我建议你先检查一下服务器配置。ThingsBoard虽然不算吃资源,但也不能太寒酸。

组件 最低配置 推荐配置
CPU 2核 4核及以上
内存 4GB 8GB
磁盘 20GB 50GB SSD
操作系统 Ubuntu 20.04 / CentOS 7+ Ubuntu 22.04 LTS
注意: 如果你打算用Docker方式,记得先装好Docker和Docker Compose。我见过有人卡在这一步半天,结果发现docker都没装——嗯,别笑,真事。

2.2 Docker方式安装:最快上手的方式

我个人最推荐新手用Docker方式。为什么?因为省心。你想想看,一个docker-compose up就搞定了,不用管Java版本、不用管PostgreSQL配置,多舒服。

2.2.1 拉取镜像与启动

先创建一个工作目录,然后下载官方的docker-compose文件:

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

下载完成后,检查一下.env文件里的配置。我习惯把时区改成Asia/Shanghai:

# 编辑 .env 文件
vim .env

# 找到 TZ 这一行,改成
TZ=Asia/Shanghai

然后直接启动:

docker-compose up -d

第一次启动会拉取镜像,大概需要5-10分钟,取决于你的网速。等所有容器都变成healthy状态,就说明跑起来了。

小技巧:docker-compose logs -f 可以实时看日志。我曾经遇到过一次启动失败,一看日志是端口被占了——8080端口被nginx占了,改一下映射端口就好。

2.2.2 验证安装

启动完成后,打开浏览器访问 http://你的服务器IP:8080。如果看到ThingsBoard的登录页面,恭喜你,第一步走通了。

2.3 源码编译安装:适合定制化需求

如果你需要二次开发,或者想定制一些功能,那就得走源码编译这条路了。说实话,这条路比Docker麻烦不少,但灵活性更高。

2.3.1 环境依赖

先装好这些工具:

  • Java 11(OpenJDK 11,别用Java 8,我试过会报错)
  • Maven 3.6+
  • PostgreSQL 12+
  • Node.js 16+(用于前端编译)
  • Git

安装Java和Maven:

sudo apt update
sudo apt install openjdk-11-jdk maven git -y

# 验证版本
java -version
mvn -version

2.3.2 下载源码并编译

从GitHub拉取代码:

git clone https://github.com/thingsboard/thingsboard.git
cd thingsboard

然后开始编译。这里要有点耐心,我第一次编译等了将近20分钟:

mvn clean install -DskipTests
避坑指南: 我曾经因为网络问题,maven下载依赖失败了好几次。建议配置阿里云的maven镜像,在 ~/.m2/settings.xml 里加上镜像地址,能快不少。

2.3.3 配置数据库

ThingsBoard默认使用PostgreSQL。先创建数据库和用户:

sudo -u postgres psql
CREATE DATABASE thingsboard;
CREATE USER tbuser WITH PASSWORD 'tbpassword';
GRANT ALL PRIVILEGES ON DATABASE thingsboard TO tbuser;
\q

然后修改配置文件 application/src/main/resources/thingsboard.yml

spring:
  datasource:
    url: jdbc:postgresql://localhost:5432/thingsboard
    username: tbuser
    password: tbpassword

2.3.4 启动服务

编译完成后,进入应用目录启动:

cd application/target
java -jar thingsboard-*.jar

启动日志会输出到控制台。看到 Started ThingsboardServer in xxx seconds 就说明成功了。

2.4 初始化配置:让系统跑起来

不管是Docker还是源码编译,第一次启动后都需要做初始化配置。

2.4.1 数据库初始化

ThingsBoard启动时会自动创建表结构。但如果你用的是源码编译方式,可能需要手动执行初始化脚本:

# 进入数据库脚本目录
cd thingsboard/dao/src/main/resources/sql

# 执行初始化
psql -U tbuser -d thingsboard -f schema.sql
psql -U tbuser -d thingsboard -f system-data.sql
重点: 初始化脚本会创建默认的租户、客户、设备等基础数据。如果你发现登录后看不到任何东西,八成是这步没做对。

2.4.2 配置文件调优

我个人习惯在初始化后调整几个关键参数。打开 thingsboard.yml

# 修改日志级别,方便调试
logging:
  level:
    org.thingsboard: DEBUG

# 调整队列大小,防止高并发时丢数据
queue:
  in-memory:
    max-size: 100000

2.5 管理员账号设置:你的第一把钥匙

安装完成后,第一件事就是登录管理员账号。默认账号是这样的:

角色 用户名 密码
系统管理员 sysadmin@thingsboard.org sysadmin
租户管理员 tenant@thingsboard.org tenant
客户用户 customer@thingsboard.org customer

sysadmin@thingsboard.org / sysadmin 登录后,我建议你立刻做三件事:

  1. 修改密码——点右上角头像 -> 修改密码。别用默认密码,安全第一。
  2. 创建租户——在"租户"页面添加你的项目租户。每个租户相当于一个独立的项目空间。
  3. 配置邮件服务器——在"系统设置" -> "邮件"里配置SMTP。这样以后设备告警才能发邮件通知你。
我的经验: 邮件配置这块,我建议用QQ邮箱的SMTP服务。授权码生成方式:登录QQ邮箱 -> 设置 -> 账户 -> 开启POP3/SMTP服务。别直接用密码,要用授权码。

2.6 验证安装是否成功

最后,做个简单的验证。登录后创建一个测试设备:

  1. 进入"设备"页面,点击"添加设备"
  2. 输入设备名称,比如"test-modbus-device"
  3. 保存后,你会看到一个访问令牌(Access Token)
  4. 用这个令牌,可以测试MQTT或HTTP接入

如果设备能正常创建,并且你能在仪表盘上看到它,那恭喜你——ThingsBoard平台搭建成功了!

下一章,我们就开始真正接入Modbus设备了。到时候我会手把手教你配置Modbus网关,把真实设备的数据送上来。