2、环境准备:Ubuntu/Docker安装ThingsBoard、初始化配置、访问控制台

好,咱们正式开始动手了。这一章的目标很明确——把 ThingsBoard 跑起来。你可能会想:「不就是装个软件吗?」嗯,没那么简单,但也没那么复杂。我见过太多人在环境搭建这一步卡住,其实说白了,就是几个关键点没注意到。

2.1 两种安装方式,我推荐哪一种?

ThingsBoard 官方提供了两种主流安装方式:直接安装在 Ubuntu 上,或者用 Docker 容器化部署。我个人习惯用 Docker,为什么?

  • 隔离性好:不会污染你的宿主机环境
  • 升级方便:换个镜像版本就行,不用卸载重装
  • 团队协作:配置文件可以版本化管理,大家拉下来就能跑

但如果你是在生产环境,或者对 Docker 不太熟悉,直接装 Ubuntu 上也没问题。我在项目中遇到过客户坚持不用 Docker,觉得多了一层「黑盒」,其实各有优劣。咱们课程里两种都讲,你选一种就行。

2.2 方式一:Ubuntu 直接安装 ThingsBoard

先确认你的 Ubuntu 版本。我建议用 20.04 LTS22.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 分钟。别急,去泡杯咖啡。

💡 小技巧:如果启动失败,先检查端口是否被占用。我遇到过 9090 端口被其他服务占用的坑,用 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,权限最高,方便你熟悉整个系统。

⚠️ 安全提醒:生产环境一定要改默认密码!我曾经见过有人把 ThingsBoard 暴露在公网上,用的还是默认密码,结果被挖矿程序盯上了。别问我怎么知道的...

2.5 初始化配置要点

登录后,先别急着玩。有几个配置我建议你第一时间搞定:

  1. 修改管理员密码:系统设置 → 安全 → 修改密码
  2. 配置邮件服务器:系统设置 → 邮件,不然用户注册、密码重置功能用不了
  3. 设置时区:系统设置 → 常规,改成 Asia/Shanghai,不然时间显示不对

我记得有一次帮客户排查问题,发现设备上报的时间戳总是差 8 小时,折腾了半天,最后发现是时区没配。嗯,这种低级错误我也犯过。

2.6 验证安装是否成功

最后,咱们做个快速验证。在控制台左侧菜单找到「设备」→ 点击「+」添加新设备,随便填个名字,比如「test-device」。创建成功后,你会看到一个访问令牌(Access Token),这个后面接入设备时会用到。

能创建设备,说明 ThingsBoard 已经正常工作了。恭喜你,环境搭建完成!

📌 本章小结:我们完成了 ThingsBoard 的两种安装方式,并成功登录控制台。下一章,我会带你用 MQTT 协议接入第一个真实设备,到时候就能看到数据在仪表板上跳动了。