Contents

Install ThingsBoard on Ubuntu server

步骤1. 安装Java 11

注:java版本取决于安装的ThingsBoard版本,如:

· ThingsBoard-3.4.1 —— Java 11

· ThingsBoard-3.1.1 —— Java 8

(官网安装教程写的是3.1.1版本,这里安装最新版本3.4.1)

安装命令:sudo apt install openjdk-11-jdk

检查命令:java -version

/images/2022-10-17-基于Ubuntu服务器安装ThingsBoard/1

可以使用以下命令配置哪个版本是默认版本:

sudo update-alternatives --config java

/images/2022-10-17-基于Ubuntu服务器安装ThingsBoard/2

步骤2. 安装ThingsBoard服务

下载安装包

wget https://github.com/thingsboard/thingsboard/releases/download/v3.4.1/thingsboard-3.4.1.deb

安装服务

sudo dpkg -i thingsboard-3.4.1.deb

注:如果下载速度太慢,可采用两种解决方案

  1. 更换下载源
  2. 通过其他客户端下载好,再用scp命令传输至服务器上

安装完成未报错的话,可用以下命令看服务的安装路径:

whereis thingsboard

/images/2022-10-17-基于Ubuntu服务器安装ThingsBoard/3

步骤3. 配置数据库

ThingsBoard能够使用SQL或hybrid数据库方式。 有关更多详细信息请参见相应的体系结构页面

将PostgreSQL用于开发和生产环境ThingsBoard团队建议负载(<5000消息/秒)。

使用托管的PostgreSQL服务器对于ThingsBoard实例而言都是一种经济高效的解决方案。

PostgreSQL安装
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
# install **wget** if not already installed:
sudo apt install -y wget

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

# add repository contents to your system:
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

# install and launch the postgresql service:
sudo apt update
sudo apt -y install postgresql-12
sudo service postgresql start

安装了PostgreSQL后可创建一个新用户或为主要用户设置密码

1
2
3
4
sudo su - postgres
psql
\password
\q

然后,按Ctrl+D返回主用户控制台并连接到数据库以创建 Thingsboard DB

1
2
3
psql -U postgres -d postgres -h 127.0.0.1 -W
CREATE DATABASE thingsboard;
\q
ThingsBoard配置

编辑ThingsBoard配置文件,添加下列配置

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

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
# DB Configuration 
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
# Specify partitioning size for timestamp key-value storage. Allowed values: DAYS, MONTHS, YEARS, INDEFINITE.
export SQL_POSTGRES_TS_KV_PARTITIONING=MONTHS

PUT_YOUR_POSTGRESQL_PASSWORD_HERE 替换刚刚创建的postgres用户密码

步骤4. 选择消息队列服务

选择下面消息中间件代理服务之前的通信。

  • 内存 默认队列适用于开发环境很有用请勿用于生产环境。
  • Kafka 对于本地和私有云部署可以独立于云服务供应商生产环境中使用。
  • RabbitMQ 如果没有太多负载并且已经具备一定的使用经验建议使用此方式。
  • AWS SQS 如是你打算在AWS上使用ThingsBoard则可以使用此消息队列。
  • Google发布/订阅 如果你打算在Google Cloud上部署ThingsBoard则可以使用此消息队列。
  • Azure服务总线 如果你打算在Azure上部署ThingsBoard则可以使用此消息队列。
  • Confluent云 基于Kafka的完全托管的事件流平台。

参见相应的架构页面和规则引擎页面以获取更多详细信息。

默认使用内置的内存队列无需其他配置。

步骤5. 运行安装脚本

安装ThingsBoard服务并更新数据库配置后,执行以下脚本:

1
2
# --loadDemo option will load demo data: users, devices, assets, rules, widgets.
sudo /usr/share/thingsboard/bin/install/install.sh --loadDemo

步骤6. 启动服务

执行以下命令以启动ThingsBoard:

sudo service thingsboard start

启动成功后,可以打开Web UI进行查看:

http://localhost:8080/(localhost换成相应服务器IP即可)

如果在安装脚本的执行过程中指定了_-loadDemo ,_则可以使用以下默认凭据:

注: 如果是1-2核CPU或1-2G内存的计算机请等待90秒后启动界面。

故障排除

ThingsBoard日志存储在以下目录中:

/var/log/thingsboard

执行如下命令检查后面是否有错误:

cat /var/log/thingsboard/thingsboard.log | grep ERROR