0


thingsboard真实项目实战二、安装包部署

我们这里介绍2种部署方法。

1、使用安装包部署

简单,快速,如需要修改UI或后续开发还是要回到源码编译部署。

2、使用源码编译后部署

安装过程复杂,但定制性强,如果你想修改UI,那选源码编译。

第三章、安装包部署

安装的服务器系统:Ubuntu 24.04 LTS

使用终端工具登录你的服务器,后开始部署。所有的命令前面请加上sudo来确保你有足够的权限。

1、安装java17支持

1.1、获取最新的软件包索引信息

sudo apt update

1.2、安装OpenJDK 17

sudo apt install openjdk-17-jdk

1.3、配置你的系统使用最新的OpenJDK 17

sudo update-alternatives --config java

这里选0,回车即可。

1.4、检查你的OpenJDK 版本是否正确

java -version

如果输出如下那就正确了。

openjdk version "17.0.11" 2024-04-16
OpenJDK Runtime Environment (build 17.0.11+9-Ubuntu-1)
OpenJDK 64-Bit Server VM (build 17.0.11+9-Ubuntu-1, mixed mode, sharing)

2、Thingsboard服务安装

2.1、确保你在用户目录中

cd ~

2.2、下载安装包

wget https://github.com/thingsboard/thingsboard/releases/download/v3.7/thingsboard-3.7.deb

如果没科学上网这个会很慢,而且经常断线,可以说相当麻烦。

你们可以去https://github.com/thingsboard/thingsboard 下载最新版本

本教程中我们是ubuntu,所以选deb包下载。

这里我给出目前最新的版本3.7供下载

下载后用终端工具里的sftp工具上传到你的用户目录中。

说到终端工具,这里推荐一下electerm,github上开源免费的,还是蛮好用的,至少免费滴,而且还有中文。

你们自己下载吧。

https://github.com/electerm/electerm

设置好服务器地址、用户名、密码后,保存并连接。

连接上后选择Sftp

左边是本地机器目录,右边是服务器目录

右键 选择上次,将得到的deb安装文件上传到服务器上。

回到SSH窗口,ls看看文件在里面了没有,

2.3、解包安装文件:

sudo dpkg -i thingsboard-3.7.deb

安装完成

3、PostgreSQL安装

根据官方文档,如果小于5000条消息/秒,可以直接使用PostgreSQL,我们项目当然没这么大了。就只需安装PostgreSQL即可。

3.1、weget安装

默认情况下系统wget已经装好了,没有得话可以用下面命令安装。

sudo apt install -y wget

我这显示啥都没发生

3.2、导入PostgreSQL公钥

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

这里显示apt-key已经被弃用,推荐使用 trusted.gpg.d 目录来管理密钥文件。

可以不理这个警告,不然麻烦了,以后不行了在补充哈。

3.3、将 PostgreSQL 的 APT 仓库添加到你的系统

以便你可以从该仓库安装和更新 PostgreSQL 软件包。

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

3.4、再次更新系统软件包索引

sudo apt update

3.5、安装PostgreSQL

sudo apt -y install postgresql-15

3.6、启动PostgreSQL服务

sudo service postgresql start

3.7、坑

如果PostgreSQL无法成功安装,这个和ubuntu的版本、网络都有关系,特别是在centos下。

有个变通的办法,就是装宝塔面板,然后利用宝塔面板来安装PostgreSQL。

4、配置PostgreSQL

4.1、切换到PostgreSQL用户

sudo su - postgres

4.2、运行终端工具

psql

psql命令是PostgreSQL 的交互式终端工具。

4.3、设置密码

\password

输入二次密码,这个密码是PostgreSQL数据库的密码,后面要用到,不要忘了

4.4、退出PostgreSQL环境

\q

按Ctrl+D再次退出,回到主环境下。

整个过程输出如下:

4.5、在PostgreSQL里创建thingsboard数据库

psql -U postgres -d postgres -h 127.0.0.1 -W

输入刚才设置的密码来到postgres环境下

创建数据库

CREATE DATABASE thingsboard;

退出环境

\q
**这里不用
按Ctrl+D,直接可回到主环境下。**

5、配置ThingsBoard以连接PostgreSQL

编辑 /etc/thingsboard/conf/thingsboard.conf 文件

sudo vi /etc/thingsboard/conf/thingsboard.conf

按 i 进入编辑模式,将下面文字粘贴到最后。

# 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=你的postgresql密码
# Specify partitioning size for timestamp key-value storage. Allowed values: DAYS, MONTHS, YEARS, INDEFINITE.
export SQL_POSTGRES_TS_KV_PARTITIONING=MONTHS

记得输入你的postgresql密码!

记得输入你的postgresql密码!

1、按ESC键

2、输入:wq 回车

保存退出

6、消息队列选择

6.1、选择

ThingsBoard 能够使用各种消息传递系统/代理来存储 ThingsBoard 服务之间的消息和通信。

1、内存

这个内置就有了,默认开启的。虽然官方说他用于开发环境不建议用于生产环境,但如果你用户不多,接入的设备也不多,完全可以使用这个。

然后你就可以跳过这第六节了,因为你啥都不需要做。

2、Kafka

虽然官方建议使用kafka,但除非你的项目很大,为大量客户提供服务(个人认为不会发生),你才可能用到他。

Kafka官方也提供了docker,但我还是不建议,除非你接到的是一个全国性的项目,需要用到集群。那你多数也是使用PE版的thingsboard了

3、RabbitMQ

如果您没有太多负载,又是用于生产环境,那么官方建议你使用它。

注意:你要使用RabbitMQ的话建议新配一台虚拟机专门用作安装。

4、剩下的AWS SQS、Google Pub/Sub、Azure、Confluent Cloud我们都没法用,也要花钱,还是省省吧。

6.2、RabbitMQ安装

如果你想用rabbitMQ建议你再做个虚拟机实现,RabbitMQ对硬件要求高,同时在一台机器里的话容易产生Thingsboard线程锁死。

由于 RabbitMQ 是用 Erlang 编写的,因此您需要先安装 Erlang 才能使用 RabbitMQ。

先升级

sudo apt update
6.2.1、安装 Erlang
sudo apt-get install erlang
6.2.2、安装rabbitmq-server
sudo apt-get install rabbitmq-server
6.2.3、启动服务并作为服务启动
sudo systemctl start rabbitmq-server.service
sudo systemctl enable rabbitmq-server.service
6.2.4、密码设置

默认情况下,RabbitMQ 会创建一个名为“guest”的用户,密码为“guest”。这个用户只能在本地登陆。

您也可以使用以下命令在 RabbitMQ 服务器上创建自己的管理员帐户。

不要忘记用您自己的用户名和密码替换“PUT_YOUR_USER_NAME”和“PUT_YOUR_PASSWORD”二个值

sudo rabbitmqctl add_user PUT_YOUR_USER_NAME PUT_YOUR_PASSWORD
6.2.5、给新用户分配管理员角色

替换PUT_YOUR_USER_NAME为你的用户名

sudo rabbitmqctl set_user_tags PUT_YOUR_USER_NAME administrator
6.2.6、设置用户权限

为用户在默认虚拟主机 / 上设置权限,允许用户配置、写入和读取所有资源。

替换PUT_YOUR_USER_NAME为你的用户名

sudo rabbitmqctl set_permissions -p / PUT_YOUR_USER_NAME ".*" ".*" ".*"
6.2.7、确认RabbitMQ安装正确
sudo rabbitmqctl status

返回

Status of node rabbit@iotserver ...
Runtime

OS PID: 9839
OS: Linux
Uptime (seconds): 16325
Is under maintenance?: false
RabbitMQ version: 3.12.1
RabbitMQ release series support status: supported
Node name: rabbit@iotserver
Erlang configuration: Erlang/OTP 25 [erts-13.2.2.5] [source] [64-bit] [smp:128:16] [ds:128:16:10] [async-threads:1] [jit:ns]
Crypto library: OpenSSL 3.0.13 30 Jan 2024
Erlang processes: 413 used, 1048576 limit
Scheduler run queue: 1
Cluster heartbeat timeout (net_ticktime): 60

Plugins

Enabled plugin file: /etc/rabbitmq/enabled_plugins
Enabled plugins:

Data directory

Node data directory: /var/lib/rabbitmq/mnesia/rabbit@iotserver
Raft data directory: /var/lib/rabbitmq/mnesia/rabbit@iotserver/quorum/rabbit@iotserver

Config files

Log file(s)

 * /var/log/rabbitmq/[email protected]
 * <stdout>

Alarms

(none)

Memory

Total memory used: 0.2332 gb
Calculation strategy: rss
Memory high watermark setting: 0.4 of available memory, computed to: 6.6883 gb

allocated_unused: 0.1146 gb (46.54 %)
other_system: 0.0729 gb (29.61 %)
code: 0.0321 gb (13.03 %)
other_proc: 0.0214 gb (8.68 %)
metrics: 0.0057 gb (2.32 %)
atom: 0.0014 gb (0.56 %)
msg_index: 0.0012 gb (0.47 %)
binary: 0.0003 gb (0.13 %)
mnesia: 0.0001 gb (0.03 %)
plugins: 0.0 gb (0.02 %)
quorum_ets: 0.0 gb (0.01 %)
quorum_queue_dlx_procs: 0.0 gb (0.0 %)
quorum_queue_procs: 0.0 gb (0.0 %)
stream_queue_procs: 0.0 gb (0.0 %)
stream_queue_replica_reader_procs: 0.0 gb (0.0 %)
connection_channels: 0.0 gb (0.0 %)
connection_other: 0.0 gb (0.0 %)
connection_readers: 0.0 gb (0.0 %)
connection_writers: 0.0 gb (0.0 %)
mgmt_db: 0.0 gb (0.0 %)
queue_procs: 0.0 gb (0.0 %)
queue_slave_procs: 0.0 gb (0.0 %)
reserved_unallocated: 0.0 gb (0.0 %)
stream_queue_coordinator_procs: 0.0 gb (0.0 %)
other_ets: -0.0035 gb (-1.41 %)

File Descriptors

Total: 2, limit: 65439
Sockets: 0, limit: 58893

Free Disk Space

Low free disk space watermark: 0.05 gb
Free disk space: 90.2981 gb

Totals

Connection count: 0
Queue count: 0
Virtual host count: 1

Listeners

Interface: [::], port: 25672, protocol: clustering, purpose: inter-node and CLI tool communication
Interface: [::], port: 5672, protocol: amqp, purpose: AMQP 0-9-1 and AMQP 1.0

出现类似即可认为安装正确。

6.2.8、确认RabbitMQ开启

可以使用下面命令为RabbitMQ开启web界面

sudo rabbitmq-plugins enable rabbitmq_management

打开RabbitMQ web界面

输入 IP:15672

可以认为RabbitMQ运行正常。

6.3、配置Thingsboard以使用RabbitMQ

编辑 /etc/thingsboard/conf/thingsboard.conf 文件

sudo vi /etc/thingsboard/conf/thingsboard.conf

按 i 进入编辑模式,将下面文字粘贴到最后。

export TB_QUEUE_TYPE=rabbitmq
export TB_QUEUE_RABBIT_MQ_USERNAME=YOUR_USERNAME
export TB_QUEUE_RABBIT_MQ_PASSWORD=YOUR_PASSWORD
export TB_QUEUE_RABBIT_MQ_HOST=localhost
export TB_QUEUE_RABBIT_MQ_PORT=5672

把其中“YOUR_USERNAME” and “YOUR_PASSWORD”改为你在6.2.4设置的RabbitMQ用户名和密码。 localhost 改为你的RabbotMQ的ip地址。

1、按ESC键

2、输入:wq 回车

保存退出

7、执行Thingsboard安装脚本

运行下面安装脚本,--loadDemo参数将会安装一个DEMO,一般情况下还是安装吧。

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

返回

表示安装成功!

8、开启ThingsBoard服务

sudo service thingsboard start

等待最多90秒

在浏览器中输入

IP:8080

系统提供了3个默认用户:

1、System Administrator

用户名: sysadmin@thingsboard.org

密码:sysadmin

2、Tenant Administrator

用户名: tenant@thingsboard.org

密码:tenant

3、Customer User

用户名: customer@thingsboard.org

密码:customer

如不能显示可以试试查看服务运行状态

sudo service thingsboard status

正常情况如下:

标签: linux ubuntu 运维

本文转载自: https://blog.csdn.net/zhangdaye88/article/details/140176318
版权归原作者 zhangdaye88 所有, 如有侵权,请联系我们删除。

“thingsboard真实项目实战二、安装包部署”的评论:

还没有评论