Ubuntu上单点部署Thingsboard 3.2.2

本文档详细介绍了如何在Ubuntu 18.04上部署Thingsboard 3.2.2,涵盖了从Ubuntu版本选择、数据库(PostgreSQL、Cassandra)、消息服务(Kafka、ZooKeeper)的安装配置,到Thingsboard的安装和启动验证。适合每秒数据流量不同需求的用户。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

1. Ubuntu版本的选择

2. 数据库的选择

3. 消息服务的选择

4. 根据选择安装相关依赖的应用

4.1 Java 11(openjdk)的安装

4.2 PostgreSQL的安装

4.3 Cassandra的安装(可选)

4.4 ZooKeeper的安装

4.5 Kafka的安装

5. 安装Thingsboard deb

6. 配置并启动

6.1 配置PostgreSQL

6.2 配置Cassandra (可选)

6.3 配置ZooKeeper

6.4 配置Kafka

6.5 配置Thingsboard

6.6 启动并验证


1. Ubuntu版本的选择

Thingsboard官网上对于thingsboard 3.2.2的安装推荐使用ubuntu 18.04 LTS版本。我尝试过使用18.04和20.04都没有问题。但是毕竟官方是在18.04上面做过非常详细的测试的。所以依然推荐使用18.04

2. 数据库的选择

官方对于单点部署提供了三种数据库的选择。

  • PostgreSQL:在每秒数据条收少于5000条的时候使用这种部署,将实体(Entities)和时许数据(Timeseries Data)都保存到PostgreSQL。
  • PostgreSQL + Cassandra:在每秒数据条数多余5000条的时候使用这种部署,将实体(Entities)保存与PostgreSQL数据库中,将时序数据(Timeseries Data)保存与Cassandra数据库中。
  • PostgreSQL + TimeScaleDB如果之前已经使用了TimeScale数据库,则推荐使用这种数据库选择。将实体(Entities)保存与PostgreSQL数据库中,将时序数据(Timeseries Data)保存与TimeScaleDB中。

简短的总结成一句话就是,每秒数据小于5000条用PostgreSQL, 每秒数据大于5000条用PostgreSQL+Cassandra, 之前就在用TimeScale的用PostgreSQL+TimeScaleDB。

3. 消息服务的选择

这个选择就非常的多,可以根据需求和公司的目前的现状来选择。

In MemoryThingboard自带的,也是默认。只推荐在开发和测试过程中使用
Kafka推荐在正式产品中使用
Kafka in docker container推荐在正式产品中使用
AWS SQS如果正在使用亚马逊的AWS,可以选择使用
Google Pub/Sub如果正在使用谷歌的cloud,可以选择使用
Azure Service Bus如果正在使用微软的服务,可以选择使用
Rabbit MQ推荐数据量不大的情况使用
Confluent Cloud一个基于Kafka的消息服务

其实除非是已经有正在使用,或者之前用过比较熟练的消息服务,都可以选择Kafka或者Kafka in docker container

4. 根据选择安装相关依赖的应用

4.1 Java 11(openjdk)的安装

安装命令

sudo apt update
sudo apt install openjdk-11-jdk

验证安装是否成功,并确认版本正确

java -version

看到下面数据证明安装成功,并且当前使用的版本就是11

openjdk version "11.0.xx"

......

如果版本显示出来的是其他jdk版本,可以使用下面命令进行切换

sudo update-alternatives --config java

4.2 PostgreSQL的安装

下载wget工具,如果已经安装略过。

sudo apt install -y wget

导入仓库签名密钥

wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -

将仓库到入本地系统中

RELEASE=$(lsb_release -cs)
echo "deb http://apt.postgresql.org/pub/repos/apt/ ${RELEASE}"-pgdg main | sudo tee  /etc/apt/sources.list.d/pgdg.list

安装并启动PostgreSQL 

sudo apt update
sudo apt -y install postgresql-12

4.3 Cassandra的安装(可选)

添加Cassandra仓库

echo "deb http://downloads.apache.org/cassandra/debian 40x main" | sudo tee -a /etc/apt/sources.list.d/cassandra.sources.list
curl https://downloads.apache.org/cassandra/KEYS | sudo apt-key add -

安装Cassandra

sudo apt-get update
sudo apt-get install cassandra
sudo apt-get install cassandra-tools

4.4 ZooKeeper的安装

ZooKeeper安装很简单

sudo apt-get install zookeeper

4.5 Kafka的安装

# 下载kafka
wget https://archive.apache.org/dist/kafka/2.6.0/kafka_2.13-2.6.0.tgz

tar xzf kafka_2.13-2.6.0.tgz

sudo mv kafka_2.13-2.6.0 /usr/local/kafka

5. 安装Thingsboard deb

将编译生成的thingsboard.deb文件拷贝到Ubuntu。执行下面命令进行安装。

sudo dpkg -i thingsboard.deb

6. 配置并启动

6.1 配置PostgreSQL

启动PostgreSQL服务

sudo service postgresql start

创建PostgreSQL用户

sudo su - postgres
psql
\password
\q

按Ctrl+D返回主用户,然后连接数据库,创建thingsboard数据库 

psql -U postgres -d postgres -h 127.0.0.1 -W
CREATE DATABASE thingsboard;
\q

使用文本编辑器打开thingsboard配置文件

sudo vim /etc/thingsboard/conf/thingsboard.conf

将下面信息添加到配置文件末尾, 注意将PUT_YOUR_POSTGRESQL_PASSWORD_HERE替换成刚刚配置的postgresql的密码。

export DATABASE_ENTITIES_TYPE=sql
export DATABASE_TS_TYPE=sql
export SPRING_JPA_DATABASE_PLATFORM=org.hibernate.dialect.PostgreSQLDialect
export SPRING_DRIVER_CLASS_NAME=org.postgresql.Driver
export SPRING_DATASOURCE_URL=jdbc:postgresql://localhost:5432/thingsboard
export SPRING_DATASOURCE_USERNAME=postgres
export SPRING_DATASOURCE_PASSWORD=PUT_YOUR_POSTGRESQL_PASSWORD_HERE
export SPRING_DATASOURCE_MAXIMUM_POOL_SIZE=5

6.2 配置Cassandra (可选)

同样方法打开/etc/thingsboard/conf/thingsboard.conf文件,修改下面项

export DATABASE_TS_TYPE=cassandra

6.3 配置ZooKeeper

创建并打开ZooKeeper服务的配置

sudo vim /etc/systemd/system/zookeeper.service

将下面内容加入其中

[Unit]
Description=Apache Zookeeper server
Documentation=http://zookeeper.apache.org
Requires=network.target remote-fs.target
After=network.target remote-fs.target

[Service]
Type=simple
ExecStart=/usr/local/kafka/bin/zookeeper-server-start.sh /usr/local/kafka/config/zookeeper.properties
ExecStop=/usr/local/kafka/bin/zookeeper-server-stop.sh
Restart=on-abnormal

[Install]
WantedBy=multi-user.target

启动ZooKeeper

sudo systemctl start zookeeper

6.4 配置Kafka

创建并修改Kafka服务配置

sudo vim /etc/systemd/system/kafka.service

将下面内容写入,“PUT_YOUR_JAVA_PATH”需要替换成本地Java path。例如“/usr/lib/jvm/java-11-openjdk”

[Unit]
Description=Apache Kafka Server
Documentation=http://kafka.apache.org/documentation.html
Requires=zookeeper.service

[Service]
Type=simple
Environment="JAVA_HOME=PUT_YOUR_JAVA_PATH"
ExecStart=/usr/local/kafka/bin/kafka-server-start.sh /usr/local/kafka/config/server.properties
ExecStop=/usr/local/kafka/bin/kafka-server-stop.sh

[Install]
WantedBy=multi-user.target

启动Kafka

sudo systemctl start kafka

6.5 配置Thingsboard

编辑thingsboard配置文件

sudo vim /etc/thingsboard/conf/thingsboard.conf

加入下面内容

export TB_QUEUE_TYPE=kafka
export TB_KAFKA_SERVERS=localhost:9092

运行安装脚本,并将初始实体信息导入数据库

sudo /usr/share/thingsboard/bin/install/install.sh --loadDemo

6.6 启动并验证

启动thingsboard服务

sudo service thingsboard start

此时打开浏览器访问http://localhost:8080。确认thingsboard启动成功。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值