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 |
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
~/.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 登录后,我建议你立刻做三件事:
- 修改密码——点右上角头像 -> 修改密码。别用默认密码,安全第一。
- 创建租户——在"租户"页面添加你的项目租户。每个租户相当于一个独立的项目空间。
- 配置邮件服务器——在"系统设置" -> "邮件"里配置SMTP。这样以后设备告警才能发邮件通知你。
2.6 验证安装是否成功
最后,做个简单的验证。登录后创建一个测试设备:
- 进入"设备"页面,点击"添加设备"
- 输入设备名称,比如"test-modbus-device"
- 保存后,你会看到一个访问令牌(Access Token)
- 用这个令牌,可以测试MQTT或HTTP接入
如果设备能正常创建,并且你能在仪表盘上看到它,那恭喜你——ThingsBoard平台搭建成功了!
下一章,我们就开始真正接入Modbus设备了。到时候我会手把手教你配置Modbus网关,把真实设备的数据送上来。