2、环境准备:Ubuntu/Docker安装ThingsBoard、初始化配置、访问控制台
好,咱们正式开始动手了。这一章的目标很明确——把 ThingsBoard 跑起来。你可能会想:「不就是装个软件吗?」嗯,没那么简单,但也没那么复杂。我见过太多人在环境搭建这一步卡住,其实说白了,就是几个关键点没注意到。
2.1 两种安装方式,我推荐哪一种?
ThingsBoard 官方提供了两种主流安装方式:直接安装在 Ubuntu 上,或者用 Docker 容器化部署。我个人习惯用 Docker,为什么?
- 隔离性好:不会污染你的宿主机环境
- 升级方便:换个镜像版本就行,不用卸载重装
- 团队协作:配置文件可以版本化管理,大家拉下来就能跑
但如果你是在生产环境,或者对 Docker 不太熟悉,直接装 Ubuntu 上也没问题。我在项目中遇到过客户坚持不用 Docker,觉得多了一层「黑盒」,其实各有优劣。咱们课程里两种都讲,你选一种就行。
2.2 方式一:Ubuntu 直接安装 ThingsBoard
先确认你的 Ubuntu 版本。我建议用 20.04 LTS 或 22.04 LTS,太老的版本可能会有依赖问题。
2.2.1 安装 Java 环境
ThingsBoard 基于 Java 开发,所以第一步是装 JDK。我个人习惯用 OpenJDK 11,稳定且兼容性好。
sudo apt update
sudo apt install openjdk-11-jdk -y
java -version
看到版本号输出,就说明 Java 装好了。嗯,这里要注意:别装 Java 8,太老了;也别装 Java 17,ThingsBoard 有些版本还没完全适配。
2.2.2 安装 PostgreSQL 和 Cassandra
ThingsBoard 需要数据库来存数据。官方支持两种:PostgreSQL(用于元数据)和 Cassandra(用于时序数据)。
我建议初学者先用 PostgreSQL 单库模式,简单省事。等后面数据量大了,再考虑加 Cassandra。
sudo apt install postgresql postgresql-contrib -y
sudo systemctl start postgresql
sudo systemctl enable postgresql
然后创建数据库和用户:
sudo -u postgres psql
CREATE DATABASE thingsboard;
CREATE USER tb_user WITH PASSWORD 'your_password';
GRANT ALL PRIVILEGES ON DATABASE thingsboard TO tb_user;
\q
我曾经遇到过一个问题:密码里用了特殊字符,结果配置文件解析出错。所以建议密码只用字母和数字。
2.2.3 下载并安装 ThingsBoard
去官网下载最新的 .deb 包,或者直接用 wget:
wget https://github.com/thingsboard/thingsboard/releases/download/v3.6.2/thingsboard-3.6.2.deb
sudo dpkg -i thingsboard-3.6.2.deb
安装完成后,修改配置文件:
sudo nano /etc/thingsboard/conf/thingsboard.yml
找到数据库配置部分,改成你刚才创建的 PostgreSQL 信息:
# 关键配置项
database:
type: "postgres"
postgres:
url: "jdbc:postgresql://localhost:5432/thingsboard"
username: "tb_user"
password: "your_password"
2.2.4 初始化数据库并启动
sudo /usr/share/thingsboard/bin/install/install.sh --loadDemoData
sudo systemctl start thingsboard
sudo systemctl enable thingsboard
--loadDemoData 这个参数我建议加上,它会帮你创建一些示例设备和仪表板,方便你快速上手。我第一次用的时候没加,结果控制台空空如也,还得自己手动创建,挺麻烦的。
2.3 方式二:Docker 安装 ThingsBoard(我推荐)
如果你跟我一样喜欢 Docker,那这条路会更顺畅。前提是你已经装好了 Docker 和 Docker Compose。
2.3.1 拉取镜像
docker pull thingsboard/tb-postgres:latest
这个镜像自带 PostgreSQL,省去了单独装数据库的步骤。说白了就是「开箱即用」。
2.3.2 创建数据卷并启动容器
docker run -d \
--name tb \
-p 9090:9090 \
-p 1883:1883 \
-p 5683:5683/udp \
-v ~/.mytb-data:/data \
-v ~/.mytb-logs:/var/log/thingsboard \
thingsboard/tb-postgres:latest
端口说明:
| 端口 | 用途 |
|---|---|
| 9090 | Web 控制台(HTTP) |
| 1883 | MQTT 设备接入 |
| 5683 | CoAP 设备接入(UDP) |
你想想看,如果以后要升级,只需要停掉容器、拉新镜像、再启动,数据还在,多省心。
2.3.3 查看启动日志
docker logs -f tb
看到类似 ThingsBoard started successfully 的日志,就说明启动完成了。第一次启动会比较慢,因为要初始化数据库,大概需要 2-5 分钟。别急,去泡杯咖啡。
lsof -i :9090 查一下就行。
2.4 访问控制台
不管用哪种方式安装,访问方式都一样。打开浏览器,输入:
http://你的服务器IP:9090
如果是本机,就是 http://localhost:9090。
默认登录账号:
| 角色 | 用户名 | 密码 |
|---|---|---|
| 系统管理员 | sysadmin@thingsboard.org | sysadmin |
| 租户管理员 | tenant@thingsboard.org | tenant |
| 客户用户 | customer@thingsboard.org | customer |
第一次登录,我建议用 sysadmin@thingsboard.org,权限最高,方便你熟悉整个系统。
2.5 初始化配置要点
登录后,先别急着玩。有几个配置我建议你第一时间搞定:
- 修改管理员密码:系统设置 → 安全 → 修改密码
- 配置邮件服务器:系统设置 → 邮件,不然用户注册、密码重置功能用不了
- 设置时区:系统设置 → 常规,改成 Asia/Shanghai,不然时间显示不对
我记得有一次帮客户排查问题,发现设备上报的时间戳总是差 8 小时,折腾了半天,最后发现是时区没配。嗯,这种低级错误我也犯过。
2.6 验证安装是否成功
最后,咱们做个快速验证。在控制台左侧菜单找到「设备」→ 点击「+」添加新设备,随便填个名字,比如「test-device」。创建成功后,你会看到一个访问令牌(Access Token),这个后面接入设备时会用到。
能创建设备,说明 ThingsBoard 已经正常工作了。恭喜你,环境搭建完成!