基于CentOS服务器基于thingsboard-x.x.x.rpm安装包方式安装ThingsBoard
一、先决条件
本指南描述了如何在CentOS7/8上安装ThingsBoard。硬件要求取决于选择的数据库和连接到系统的设备数量。在继续安装之前请执行以下命令以安装必要的工具:
- 需要一台
1G内存的服务器运行ThingsBoard和PostgreSQL。 - 需要一台
8G内存的服务器运行ThingsBoard和Cassandra。
①:For CentOS 7:
# Install wgetsudo yum install -y nano wget# Add latest EPEL release for CentOS 7sudo yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
②:For Centos 8:
# Install wgetsudo yum install -y nano wget# Add latest EPEL release for CentOS 8sudo yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
二、步骤1. 安装Java 11(OpenJDK)
①:
ThingsBoard服务正在Java 11上运行请按照以下说明安装OpenJDK 11:sudo yum install java-11-openjdk
②:指定
OpenJDK 11设置为系统的默认版本。您可以使用以下命令配置哪个版本是默认版本:sudo update-alternatives --config java
```bash [root@localhost ~]# sudo update-alternatives —config java
共有 3 个提供“java”的程序。
选项 命令
1 java-1.7.0-openjdk.x86_64 (/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.261-2.6.22.2.el7_8.x86_64/jre/bin/java) *+ 2 java-1.8.0-openjdk.x86_64 (/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.302.b08-0.el7_9.x86_64/jre/bin/java) 3 java-11-openjdk.x86_64 (/usr/lib/jvm/java-11-openjdk-11.0.13.0.8-1.el7_9.x86_64/bin/java)
按 Enter 保留当前选项[+],或者键入选项编号:3
- ③:您可以使用`java -version`命令查看默认的`**java**`**版本号**:```bash[root@localhost ~]# java -versionopenjdk version "11.0.13" 2021-10-19 LTSOpenJDK Runtime Environment 18.9 (build 11.0.13+8-LTS)OpenJDK 64-Bit Server VM 18.9 (build 11.0.13+8-LTS, mixed mode, sharing)
三、步骤2. 下载thingsboard-x.x.x.rmp安装包,并安装服务
①:下载安装包:
wget https://github.com/thingsboard/thingsboard/releases/download/v3.3.1/thingsboard-3.3.1.rpm
②:安装服务:
sudo rpm -Uvh thingsboard-3.3.1.rpm
四、步骤3. 配置数据库
①:
PostgreSQL安装,建议在Docker容器中使用PostgreSQL进行安装:docker run -d \--restart=always \--name tb-postgres \-e POSTGRES_DB=thingsboard \-e POSTGRES_PASSWORD=postgres \-p 5432:5432 \-v /home/thingsboard/volume/postgresql/data:/var/lib/postgresql/data \postgres:12
②:编辑
ThingsBoard配置文件:sudo vim /etc/thingsboard/conf/thingsboard.conf
③:将以下行添加到配置文件中,将
${PUT_YOUR_IP}、${PUT_YOUR_POSTGRESQL_PASSWORD_HERE}替换为真实的服务器地址、密码。# DB Configurationexport DATABASE_ENTITIES_TYPE=sqlexport DATABASE_TS_TYPE=sqlexport SPRING_JPA_DATABASE_PLATFORM=org.hibernate.dialect.PostgreSQLDialectexport SPRING_DRIVER_CLASS_NAME=org.postgresql.Driverexport SPRING_DATASOURCE_URL=jdbc:postgresql://${PUT_YOUR_IP}:5432/thingsboardexport SPRING_DATASOURCE_USERNAME=postgresexport 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=MONTHSexport HTTP_BIND_PORT=80
五、步骤4. 选择消息队列服务
默认选择内存作为消息中间件代理服务之前的通信:
- 内存:默认队列适用于开发环境很有用请勿用于生产环境。
Kafka:对于本地和私有云部署可以独立于云服务供应商生产环境中使用。RabbitMQ:如果没有太多负载并且已经具备一定的使用经验建议使用此方式。AWS SQS:如是你打算在AWS上使用ThingsBoard则可以使用此消息队列。Google发布/订阅:如果你打算在Google Cloud上部署ThingsBoard则可以使用此消息队列。Azure服务总线:如果你打算在Azure上部署ThingsBoard则可以使用此消息队列。Confluent云:基于Kafka的完全托管的事件流平台。
六、步骤5. [可选]低性能配置(1GB内存)
①:编辑
ThingsBoard配置文件sudo vim /etc/thingsboard/conf/thingsboard.conf
②:将以下行添加到配置文件:
# Update ThingsBoard memory usage and restrict it to 256MB in /etc/thingsboard/conf/thingsboard.confexport JAVA_OPTS="$JAVA_OPTS -Xms256M -Xmx256M"
七、步骤6. 运行安装脚本
①:安装
ThingsBoard服务并更新数据库配置后,您可以执行以下脚本:# --loadDemo option will load demo data: users, devices, assets, rules, widgets.sudo /usr/share/thingsboard/bin/install/install.sh --loadDemo
```bash [root@localhost thingsboard]# sudo /usr/share/thingsboard/bin/install/install.sh —loadDemo
/ __/ / / () _ / ) __ __/ / / / / \ / / / \ /
/ / ___/ / __ | / __ \ / __/ / _/ / / / / / / / / / / / / / / / // / (__ ) / // / / // // // / / / / // / // // // // // // _, / /_/ // __/ \,/ // _,//____/
===================================================
:: ThingsBoard :: (v3.3.1)
Starting ThingsBoard Installation… Installing DataBase schema for entities… Installing SQL DataBase schema part: schema-entities.sql Installing SQL DataBase schema indexes part: schema-entities-idx.sql Installing SQL DataBase schema PostgreSQL specific indexes part: schema-entities-idx-psql-addon.sql Installing DataBase schema for timeseries… Installing SQL DataBase schema part: schema-ts-psql.sql Successfully executed query: CREATE TABLE IF NOT EXISTS ts_kv_indefinite PARTITION OF ts_kv DEFAULT; Loading system data… Loading demo data… Installation finished successfully! ThingsBoard installed successfully! [root@localhost thingsboard]#
<a name="4c638bcd"></a>#### 八、步骤7. 启动服务- ①:`ThingsBoard`默认使用`80`端口请执行以下命令确保正确打开:```bashsudo firewall-cmd --zone=public --list-portssudo firewall-cmd --zone=public --add-port=80/tcp --permanentsudo firewall-cmd --zone=public --add-port=5432/tcp --permanentsudo firewall-cmd --zone=public --add-port=1883/tcp --permanentsudo firewall-cmd --reload
80端口:是thingsboard的web端口号5432端口:是postgres的数据库端口号1883端口:是mqtt的端口号
- ②:执行以下命令以启动
ThingsBoard:
```bash [root@iZbp16q6j4wh5685xon9unZ ~]# service thingsboard start Redirecting to /bin/systemctl start thingsboard.service [root@iZbp16q6j4wh5685xon9unZ ~]# [root@iZbp16q6j4wh5685xon9unZ ~]# [root@iZbp16q6j4wh5685xon9unZ ~]# service thingsboard status Redirecting to /bin/systemctl status thingsboard.service ● thingsboard.service - thingsboard Loaded: loaded (/usr/lib/systemd/system/thingsboard.service; enabled; vendor preset: disabled) Active: active (running) since Tue 2021-11-09 09:25:15 CST; 4s ago Main PID: 15809 (thingsboard.jar) Tasks: 20 Memory: 146.6M CGroup: /system.slice/thingsboard.servicesudo service thingsboard startsudo service thingsboard status
├─15809 /bin/bash /usr/share/thingsboard/bin/thingsboard.jar└─15824 /usr/bin/java -Dsun.misc.URLClassPath.disableJarChecking=true -Dplatform=rpm -Dinstall.data_dir=/usr/share/thingsbo...
Nov 09 09:25:15 iZbp16q6j4wh5685xon9unZ systemd[1]: Started thingsboard. Nov 09 09:25:19 iZbp16q6j4wh5685xon9unZ thingsboard.jar[15809]: __ _ … Nov 09 09:25:19 iZbp16q6j4wh5685xon9unZ thingsboard.jar[15809]: /_ / / / () __ / ) __ …/ / Nov 09 09:25:19 iZbp16q6j4wh5685xon9unZ thingsboard.jar[15809]: / / / \ / / / \ / `/ / __/ / | / \ / …__ / Nov 09 09:25:19 iZbp16q6j4wh5685xon9unZ thingsboard.jar[15809]: / / / / / / / / / / / / / // / ( ) / // / / // // /…// / Nov 09 09:25:19 iZbp16q6j4wh5685xon9unZ thingsboard.jar[15809]: // // // // // /_/ \, / // /_/ _/ \…,/ Nov 09 09:25:19 iZbp16q6j4wh5685xon9unZ thingsboard.jar[15809]: /_/ Nov 09 09:25:19 iZbp16q6j4wh5685xon9unZ thingsboard.jar[15809]: =================================================== Nov 09 09:25:19 iZbp16q6j4wh5685xon9unZ thingsboard.jar[15809]: :: ThingsBoard :: (v3.3.1) Nov 09 09:25:19 iZbp16q6j4wh5685xon9unZ thingsboard.jar[15809]: =================================================== Hint: Some lines were ellipsized, use -l to show in full.
- ③:启动后,您将可以使用以下链接打开`Web UI`:```httphttp://${ip}:80/
- ④:如果在安装脚本的执行过程中指定了
--loadDemo则可以使用以下默认凭据:- 系统管理员:
sysadmin@thingsboard.org / sysadmin - 租户管理员:
tenant@thingsboard.org / tenant - 客户:
customer@thingsboard.org / customer
- 系统管理员:
九、故障排除
①:
ThingsBoard日志存储在以下目录中:/var/log/thingsboard
②:执行如下命令检查后面是否有错误:
cat /var/log/thingsboard/thingsboard.log | grep ERROR
