当前版本:ThingsBoard4.2、kafka4.0 
ThingsBoard 是一款开源的物联网平台,支持设备连接、数据采集、规则引擎、可视化展示等核心功能,广泛应用于智能家居、工业物联网等场景。本教程将详细介绍在 Ubuntu 22.04 操作系统上搭建 ThingsBoard 平台的完整步骤,包含前期环境准备、依赖组件安装、ThingsBoard 部署配置及启动验证等关键环节。
tips:你完全可以参考官方的流程
本文主要是针对不想看官方的,跟着下文敲命令即可运行起来,快捷、高效、不用踩坑!
一、前期准备
1.1 系统环境要求
-
操作系统:Ubuntu 22.04 LTS(64位,建议使用纯净版系统,避免依赖冲突)
-
硬件配置:最低 2GB 内存、2核 CPU、20GB 磁盘空间(生产环境建议 4GB+ 内存、4核 CPU)
-
网络要求:服务器可连接互联网(用于下载依赖包和 ThingsBoard 安装包),并开放 8080 端口(ThingsBoard web 访问端口)
-
权限要求:使用 root 用户或具有 sudo 权限的普通用户操作
1.2 系统更新
首先更新 Ubuntu 系统软件包索引,确保系统组件为最新版本,减少依赖安装失败风险:
sudo apt update
sudo apt upgrade -y
更新完成后,可重启系统
二、安装流程
主要分为3大部分:1.安装Thingsboard,2.安装Postgresql数据库,3.安装Kafka
按如下流程一步一步敲命令:
bash
#安装JDK:
sudo apt update && sudo apt install openjdk-17-jdk-headless
sudo update-alternatives --config java
java -version
#安装thingsboard:
wget https://github.com/thingsboard/thingsboard/releases/download/v4.2.1/thingsboard-4.2.1.deb
sudo dpkg -i thingsboard-4.2.1.deb
#安装postgresql:
# Automated repository configuration:
sudo apt install -y postgresql-common
sudo /usr/share/postgresql-common/pgdg/apt.postgresql.org.sh
# install and launch the postgresql service:
sudo apt update
sudo apt -y install postgresql-16
sudo service postgresql start
#配置密码
sudo -u postgres psql -c "\password"
#刷入2次密码:例如:runcedb
psql -U postgres -d postgres -h 127.0.0.1 -W
CREATE DATABASE thingsboard;
#Ctrl+D退出数据库
sudo vim /etc/thingsboard/conf/thingsboard.conf
#将下面内容添加到配置文件中并替换"PUT_YOUR_POSTGRESQL_PASSWORD_HERE"为postgres帐户密码:
# DB Configuration
export DATABASE_TS_TYPE=sql
export SPRING_DATASOURCE_URL=jdbc:postgresql://localhost:5432/thingsboard
export SPRING_DATASOURCE_USERNAME=postgres
export SPRING_DATASOURCE_PASSWORD=runcedb
export SQL_POSTGRES_TS_KV_PARTITIONING=MONTHS
#下载安装kafka
wget https://downloads.apache.org/kafka/4.0.0/kafka_2.13-4.0.0.tgz
tar -xzf kafka_2.13-4.0.0.tgz
sudo mv kafka_2.13-4.0.0 /usr/local/kafka
cd /usr/local/kafka
cp config/server.properties config/server-my.properties
vim config/server-my.properties
#添加:
controller.quorum.voters=1@localhost:9093
#修改:
log.dirs=/usr/local/kafka/data
mkdir -p /usr/local/kafka/data
sudo /usr/local/kafka/bin/kafka-storage.sh random-uuid
#拷贝你的uuid,例如nIclVtmBT_CByAS8alAA,下面的命令需要替换你的uuid
sudo /usr/local/kafka/bin/kafka-storage.sh format -t nIclVtmBT_CByAS8alAA -c config/server-my.properties
vim /etc/systemd/system/kafka.service
[Unit]
Description=Apache Kafka Server (KRaft mode)
# 确保在网络就绪后启动,如果你的Kafka依赖其他服务(虽然单机KRaft通常不依赖),可在此添加,例如 After=network.target zookeeper.service
After=network.target
Documentation=https://kafka.apache.org/documentation/
[Service]
Type=simple
# 以root用户运行。生产环境建议创建专用用户(如kafka)并在此处指定 User=kafka
User=root
# 可选:设置JVM堆内存大小,根据你的服务器内存调整。例如 -Xmx4G -Xms4G 表示分配4GB
Environment="KAFKA_HEAP_OPTS=-Xmx1G -Xms1G"
# 核心启动命令:-daemon 参数已由 systemd 的 Type=simple 管理,无需再添加。
ExecStart=/usr/local/kafka/bin/kafka-server-start.sh /usr/local/kafka/config/server-my.properties
# 停止命令,使用Kafka自带的停止脚本
ExecStop=/usr/local/kafka/bin/kafka-server-stop.sh
# 当进程意外退出时,自动重启
Restart=on-failure
# 重启间隔
RestartSec=10
# 标准输出和错误输出到系统日志(可通过 journalctl 查看)
StandardOutput=journal
StandardError=journal
# 安全限制(可选,如果遇到权限问题可暂时注释掉)
# LimitNOFILE=100000
# LimitCORE=infinity
[Install]
# 指定在系统多用户模式启动时启用此服务
WantedBy=multi-user.target
#启动服务
systemctl start kafka
systemctl status kafka
systemctl enable kafka
sudo vim /etc/thingsboard/conf/thingsboard.conf
export TB_QUEUE_TYPE=kafka
export TB_KAFKA_SERVERS=localhost:9092
# --loadDemo option will load demo data: users, devices, assets, rules, widgets.
sudo /usr/share/thingsboard/bin/install/install.sh --loadDemo
sudo service thingsboard start
cd /var/log/thingsboard
#查看启动日志,没有报错即可
等待一下,浏览器输入:ip:8080
即可打开登录页面
| 用户角色 | 默认用户名 | 默认密码 | 角色说明 |
|---|---|---|---|
| 系统管理员(SysAdmin) | sysadmin@thingsboard.org | sysadmin | 拥有平台最高权限,可管理租户、系统配置等全局设置 |
| 租户管理员(TENANT_ADMIN) | tenant@thingsboard.org | tenant | 负责单个租户内的资源管理,比如设备接入、规则配置等 |
| 普通客户(CUSTOMER_USER) | customer@thingsboard.org | customer | 面向最终使用者的账号,权限范围受限,仅能查看所属租户分配的资源 |