參考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
您始終可以在帳戶詳情頁面中更改每個帳戶的密碼。