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 面向最终使用者的账号,权限范围受限,仅能查看所属租户分配的资源
相关推荐
dishugj28 分钟前
【linux】Redhat 6.3系统安装zabbix-agent软件包,无法使用YUM源问题
linux·运维·zabbix
石像鬼₧魂石38 分钟前
HexStrike-AI人工智能 渗透测试学习(Metasploitable2 192.168.1.4)完整流程总结
学习·ubuntu
时光803.1 小时前
快速搭建青龙面板Docker教程
windows·ubuntu·bash·httpx
无奈笑天下1 小时前
【麒麟镜像vmtools异常排查指导书】
linux·运维·经验分享·云计算·kylin
dajun1811234561 小时前
PC端中文免费在线跨职能泳道图制作工具
运维·架构·流程图·敏捷流程·交通物流
Xの哲學1 小时前
Linux多级时间轮:高精度定时器的艺术与科学
linux·服务器·网络·算法·边缘计算
FlourishingMind1 小时前
蓝牙授时CTS (Current Time Service)、PTP、NTP
运维·服务器·网络
2301_800050992 小时前
docker
运维·docker·容器
QT 小鲜肉2 小时前
【Linux命令大全】001.文件管理之mmove命令(实操篇)
linux·服务器·前端·chrome·笔记
Winner13002 小时前
查看rk3566摄像头设备、能力、支持格式
linux·网络·人工智能