参考ThingsBoard官方安装文档->:ThingsBoard官方安装指南
环境准备
本指南介绍了如何在RHEL/CentOS 7/8上安装ThingsBoard。硬件需求取决于所选数据库和连接到系统的设备数量。要在一台机器上运行ThingsBoard和PostgreSQL,您将需要至少1Gb的RAM。要在一台机器上运行ThingsBoard和Cassandra,您需要至少8Gb的RAM。在继续安装之前,执行以下命令以安装必要的工具:
对于CentOS 7:
#Install wget
sudo yum install -y nano wget
#Add latest EPEL release for CentOS 7
sudo yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
对于CentOS 8:
#Install wget
sudo yum install -y nano wget
#Add latest EPEL release for CentOS 8
sudo yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
安装Java 11(OpenJDK)
#ThingsBoard服务基于Java 11上运行。请按照以下说明安装OpenJDK 11:
sudo yum install java-11-openjdk
#请不要忘记默认配置操作系统使用OpenJDK 11。您可以使用以下命令配置默认版本:
sudo update-alternatives --config java
#您可以使用以下命令检查安装情况:
java -version
#预期的命令输出是:
openjdk version "11.0.xx"
OpenJDK Runtime Environment (...)
OpenJDK 64-Bit Server VM (build ...)
ThingsBoard服务安装
#下载ThingsBoard安装包
wget https://github.com/thingsboard/thingsboard/releases/download/v3.2.2/thingsboard-3.2.2.rpm
#安装ThingsBoard服务
sudo rpm -Uvh thingsboard-3.2.2.rpm
配置ThingsBoard数据库(PostgreSQL)
ThingsBoard能够使用SQL或混合数据库方法。具体详情请参见对应的架构页面。本安装指南默认安装PostgreSQL数据库
本安装指南使用的是PostgreSQL。 以下说明将帮助您安装 PostgreSQL。
#Update your system
sudo yum update
PostgreSQL安装
对于CentOS 7:
# Install the repository RPM (for CentOS 7):
sudo yum -y install https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
# Install packages
sudo yum -y install epel-release yum-utils
sudo yum-config-manager --enable pgdg12
sudo yum install postgresql12-server postgresql12
# 初始化PostgreSQL数据库
sudo /usr/pgsql-12/bin/postgresql-12-setup initdb
# 启动 postgreSQL
sudo systemctl start postgresql-12
# 将 PostgreSQL 设置开机启动
sudo systemctl enable --now postgresql-12
对于CentOS 8:
# Install the repository RPM (for CentOS 8):
sudo yum -y install https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm
# Install packages
sudo dnf -qy module disable postgresql
sudo dnf -y install postgresql12 postgresql12-server
# 初始化PostgreSQL数据库
sudo /usr/pgsql-12/bin/postgresql-12-setup initdb
# 启动 postgreSQL
sudo systemctl start postgresql-12
# 将 PostgreSQL 设置开机启动
sudo systemctl enable --now postgresql-12
安装 PostgreSQL 后,您可能希望创建一个新用户或为主用户设置密码。以下说明将有助于为主要postgresql用户设置密码: postgres安装完之后默认会创建 postgres账户,下列操作将设置 postgres的密码:输入到 \password之后会提示输入密码,那时设置密码即可。
sudo su - postgres
psql
\password
\q
然后,按”Ctrl+D”返回主用户控制台。配置密码后,编辑pg_hba.conf以对postgres用户使用MD5认证。
#编辑pg_hba.conf文件:
sudo vi /var/lib/pgsql/12/data/pg_hba.conf
#找到以下几行:
#IPv4 local connections:
host all all 127.0.0.1/32 ident
#替换ident为md5:
host all all 127.0.0.1/32 md5
#最后,您应该重新启动PostgreSQL服务以初始化新配置:
sudo systemctl restart postgresql-12.service
#连接到数据库并创建Thingsboard:
# -h 指定本地socket目录
# -p 指定端口号
# -U 指定用户名
# -d 指定数据库名称
# -W 指定终端提示符下输入密码
psql -U postgres -d postgres -h 127.0.0.1 -W
#执行数据库创建数据库语句
CREATE DATABASE thingsboard;
\q
ThingsBoard配置
#编辑ThingsBoard配置文件
sudo vi /etc/thingsboard/conf/thingsboard.conf
#将“PUT_YOUR_POSTGRESQL_PASSWORD_HERE”替换postgres用户真实密码
# 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=1qazxsw2
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
选择消息队列服务
选择下面消息中间件代理服务之前的通信。(本指南选择默认内置--内存方式,其他方式请参考文首官网连接配置)
- 内存 默认队列适用于开发环境很有用请勿用于生产环境。
- Kafka 对于本地和私有云部署可以独立于云服务供应商生产环境中使用。
- RabbitMQ 如果没有太多负载并且已经具备一定的使用经验建议使用此方式。
- AWS SQS 如是你打算在AWS上使用ThingsBoard则可以使用此消息队列。
- Google发布/订阅 如果你打算在Google Cloud上部署ThingsBoard则可以使用此消息队列。
- Azure服务总线 如果你打算在Azure上部署ThingsBoard则可以使用此消息队列。
- Confluent云 基于Kafka的完全托管的事件流平台。
默认使用内置的内存队列无需其他配置。
运行安装脚本
sudo /usr/share/thingsboard/bin/install/install.sh --loadDemo
启动服务
#ThingsBoard默认使用8080端口请执行以下命令确保正确打开:
sudo firewall-cmd --zone=public --add-port=8080/tcp --permanent
sudo firewall-cmd --reload
#执行以下命令以启动ThingsBoard:
sudo service thingsboard start
启动后,您将可以使用以下链接打开Web UI:
http://ip:8080/
如果在安装脚本的执行过程中指定了-loadDemo则可以使用以下默认凭据:
系统管理员: sysadmin@thingsboard.org / sysadmin
租户管理员: tenant@thingsboard.org / tenant
客户: customer@thingsboard.org / customer
您始终可以在帐户详情页面中更改每个帐户的密码。