在RHEL/CentOS/Rocky/AlmaLinux/Oracle Linux 8单节点上安装
备注:
-
适用于单节点
-
是否支持欧拉???
前提条件
本指南描述了如何在RHEL/CentOS 7/8上安装ThingsBoard。硬件要求取决于所选的数据库和连接到系统的设备数量。要在单台机器上运行ThingsBoard和PostgreSQL,您至少需要1GB的内存。要在单台机器上运行ThingsBoard和Cassandra,您至少需要8GB的内存。
在继续安装之前,请执行以下命令以安装必要的工具:
对于CentOS 8:
bash
复制
# 安装wget sudo yum install -y nano wget # 为CentOS 8添加最新的EPEL版本 sudo yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
步骤1. 安装Java 17 (OpenJDK)
ThingsBoard服务运行在Java 17上。按照以下说明安装OpenJDK 17:
bash
复制
sudo dnf install java-17-openjdk
请确保将操作系统配置为默认使用OpenJDK 17。您可以使用以下命令配置默认版本:
bash
复制
sudo update-alternatives --config java
您可以使用以下命令检查安装:
bash
复制
java -version
预期的命令输出是:
bash
复制
openjdk version "17.x.xx" OpenJDK Runtime Environment (...) OpenJDK 64-Bit Server VM (build ...)
步骤2. ThingsBoard服务安装
从以下链接下载安装包:
ThingsBoard Releases
下载安装包:
bash
复制
wget https://github.com/thingsboard/thingsboard/releases/download/v3.9/thingsboard-3.9.rpm
将ThingsBoard安装为服务:
bash
复制
sudo rpm -Uvh thingsboard-3.9.rpm
步骤3. 配置ThingsBoard数据库
ThingsBoard能够使用SQL或混合数据库方法。有关更多详细信息,请参阅相应的架构页面。
ThingsBoard团队建议在开发和生产环境中使用PostgreSQL,适用于合理负载(< 5000条消息/秒)。许多云供应商支持托管的PostgreSQL服务器,这是大多数ThingsBoard实例的经济高效解决方案。
PostgreSQL安装
PostgreSQL Installation Guide
以下说明将帮助您安装PostgreSQL。
bash
复制
# 更新系统 sudo yum update
备注:
实际安装没有执行。
安装存储库。
对于CentOS/RHEL 8:
bash
复制
# 安装存储库RPM: sudo dnf -y install https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm
安装包:
bash
复制
# 安装包 sudo dnf -qy module disable postgresql sudo dnf -y install postgresql16 postgresql16-server postgresql16-contrib # 初始化PostgreSQL数据库 sudo /usr/pgsql-16/bin/postgresql-16-setup initdb sudo systemctl start postgresql-16 # 可选:配置PostgreSQL开机启动 sudo systemctl enable --now postgresql-16
安装PostgreSQL后,您可能希望创建一个新用户或为主用户设置密码。以下说明将帮助您为PostgreSQL主用户设置密码。
切换到postgres
用户:
bash
复制
sudo su - postgres
要与PostgreSQL数据库交互,请输入:
bash
复制
psql
您将以PostgreSQL主用户身份连接到数据库。要设置密码,请在postgres=#
后输入以下命令:
bash
复制
\password
输入并确认密码。然后,按“Ctrl+D”返回主用户控制台。
配置密码后,连接到数据库以创建thingsboard
数据库:
bash
复制
psql -U postgres -d postgres -h 127.0.0.1 -W
执行创建数据库语句:
sql
复制
CREATE DATABASE thingsboard;
然后,按“Ctrl+D”两次退出PostgreSQL。
ThingsBoard配置
编辑ThingsBoard配置文件:
bash
复制
sudo nano /etc/thingsboard/conf/thingsboard.conf
将以下行添加到配置文件中。不要忘记将“PUT_YOUR_POSTGRESQL_PASSWORD_HERE”替换为您的真实PostgreSQL用户密码:
bash
复制
# DB配置 export DATABASE_TS_TYPE=sql export SPRING_DATASOURCE_URL=jdbc:postgresql://localhost:5432/thingsboard export SPRING_DATASOURCE_USERNAME=postgres export SPRING_DATASOURCE_PASSWORD=PUT_YOUR_POSTGRESQL_PASSWORD_HERE # 指定时间戳键值存储的分区大小。允许的值:DAYS, MONTHS, YEARS, INDEFINITE。 export SQL_POSTGRES_TS_KV_PARTITIONING=MONTHS
步骤4. 选择ThingsBoard队列服务
ThingsBoard能够使用各种消息系统/代理来存储消息并在ThingsBoard服务之间进行通信。如何选择合适的队列实现?
-
内存队列:内置并默认启用。适用于开发(PoC)环境,不适合生产部署或任何类型的集群部署。
-
Kafka:推荐用于生产部署。大多数ThingsBoard生产环境现在都使用此队列。适用于本地和私有云部署。如果您希望独立于云提供商,这也很有用。但是,一些提供商也提供Kafka的托管服务。例如,参见AWS MSK。
-
RabbitMQ:如果您没有太多负载并且您已经对此消息系统有经验,则推荐使用。
-
AWS SQS:AWS提供的完全托管的消息队列服务。如果您计划在AWS上部署ThingsBoard,则很有用。
-
Google Pub/Sub:Google提供的完全托管的消息队列服务。如果您计划在Google Cloud上部署ThingsBoard,则很有用。
-
Azure Service Bus:Azure提供的完全托管的消息队列服务。如果您计划在Azure上部署ThingsBoard,则很有用。
-
Confluent Cloud:基于Kafka的完全托管流平台。适用于云无关的部署。
有关更多详细信息,请参阅相应的架构页面和规则引擎页面。
步骤5. [可选] 为慢速机器(4GB内存)更新内存
编辑ThingsBoard配置文件:
bash
复制
sudo nano /etc/thingsboard/conf/thingsboard.conf
将以下行添加到配置文件中:
bash
复制
# 更新ThingsBoard内存使用并限制为2G export JAVA_OPTS="$JAVA_OPTS -Xms2G -Xmx2G"
备注:
实际安装没有改动。官方文档是添加,不是修改。不是慢机器,应该不用修改。
步骤6. 运行安装脚本
一旦ThingsBoard服务安装完毕并且数据库配置已更新,您可以执行以下脚本:
bash
复制
# --loadDemo选项将加载演示数据:用户、设备、资产、规则、小部件。 sudo /usr/share/thingsboard/bin/install/install.sh --loadDemo
步骤7. 启动ThingsBoard服务
ThingsBoard UI默认在8080端口上可访问。确保您的8080端口可以通过防火墙访问。要打开8080端口,请执行以下命令:
bash
复制
sudo firewall-cmd --zone=public --add-port=8080/tcp --permanent sudo firewall-cmd --reload
执行以下命令以启动ThingsBoard:
bash
复制
sudo service thingsboard start
启动后,您可以使用以下链接打开Web UI:
http://localhost:8080/
如果您在执行安装脚本时指定了--loadDemo
,则可以使用以下默认凭据:
-
系统管理员:sysadmin@thingsboard.org / sysadmin
-
租户管理员:tenant@thingsboard.org / tenant
-
客户用户:customer@thingsboard.org / customer
您始终可以在帐户配置文件页面更改每个帐户的密码。
对于1-2个CPU或1-2GB RAM的慢速机器,请允许Web UI最多90秒启动。