Ubuntu搭建物联网平台(ThingsBoard)教程

当前版本: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 面向最终使用者的账号,权限范围受限,仅能查看所属租户分配的资源
相关推荐
zl_dfq20 小时前
Linux 之 【文件】(动静态库的制作与使用、ar、ldconfig)
linux
久绊A21 小时前
磁盘故障处理
linux·运维·服务器
海棠AI实验室21 小时前
第 3 篇:服务编排与自启动——把 Mac 变成“稳定可运维”的家庭 AI 机房
运维·人工智能·macos
JANG102421 小时前
【Linux】进程通信
linux·运维·chrome
Solar202521 小时前
工程材料企业数据采集系统十大解决方案深度解析:从技术挑战到架构实践
java·大数据·运维·服务器·架构
UR的出不克21 小时前
基于 mitmproxy 的大众点评数据采集实战:自动化抓取景点与评论数据
运维·爬虫·python·自动化
viqjeee21 小时前
RK3288设备树介绍和配置
linux·设备树
chinesegf1 天前
docker迁移镜像并运行
运维·docker·容器
末日汐1 天前
Linux进程信号
linux·运维·服务器
无垠的广袤1 天前
【工业树莓派 CM0 NANO 单板计算机】YOLO26 部署方案
linux·python·opencv·yolo·树莓派·目标识别