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 面向最终使用者的账号,权限范围受限,仅能查看所属租户分配的资源
相关推荐
代码不行的搬运工7 小时前
RFC6811:BGP前缀源验证
运维·服务器·bgp网络
Archie_IT7 小时前
openEuler 软件生态深度勘探:从六万软件包到多语言融合
linux·容器·性能测试·openeuler·多语言开发
tokepson8 小时前
香橙派AI Pro个人云平台 - 从零搭建全记录
linux·服务器·技术·记录
月亮!9 小时前
移动端测试重磅升级:跨平台自动化测试框架深度对比
运维·网络·人工智能·测试工具·容器·自动化·测试用例
fengyehongWorld9 小时前
Linux wget命令
linux
凯子坚持 c9 小时前
Docker 容器全生命周期管理与运维命令深度解析
运维·docker·php
fpcc9 小时前
跟我学C++中级篇——Linux系统信号分析
linux
楼田莉子10 小时前
基于Linux的个人制作的文件库+标准输出和标准错误
linux·c语言·c++·学习·vim
java_logo10 小时前
MILVUS Docker 容器化部署指南
运维·人工智能·docker·容器·prometheus·milvus