在RHEL 8.10上安装开源工业物联网解决方案Thingsboard 3.9

devtools/2025/2/2 8:58:20/

在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,则可以使用以下默认凭据:

您始终可以在帐户配置文件页面更改每个帐户的密码。

对于1-2个CPU或1-2GB RAM的慢速机器,请允许Web UI最多90秒启动。


http://www.ppmy.cn/devtools/155393.html

相关文章

PyDeequ库在AWS EMR启动集群中数据质量检查功能的配置方法和实现代码

PyDeequ是一个基于Apache Spark的Python API&#xff0c;专门用于定义和执行“数据单元测试”&#xff0c;从而在大规模数据集中测量数据质量。 PyDeequ框架在PySpark代码中提供了全面的数据质量检查功能&#xff0c;能够帮助用户&有效地监控和提升大规模数据集的数据质量。…

基于阿里云百炼大模型Sensevoice-1的语音识别与文本保存工具开发

基于阿里云百炼大模型Sensevoice-1的语音识别与文本保存工具开发 摘要 随着人工智能技术的不断发展&#xff0c;语音识别在会议记录、语音笔记等场景中得到了广泛应用。本文介绍了一个基于Python和阿里云百炼大模型的语音识别与文本保存工具的开发过程。该工具能够高效地识别东…

[JavaScript] ES6及以后版本的新特性

文章目录 箭头函数&#xff08;Arrow Functions&#xff09;为什么需要箭头函数&#xff1f;箭头函数的完整语法箭头函数中的 this实用场景 解构赋值&#xff08;Destructuring Assignment&#xff09;为什么需要解构赋值&#xff1f;数组解构赋值的完整用法对象解构赋值的完整…

帝国CMS8.0终极栏目转换或批量改顺序成功后不能返回地址的解决方案

帝国CMS8.0终极栏目转换或批量改顺序成功后不能返回地址问题的解决办法&#xff1a; 修改 /e/class/classfun.php 文件&#xff0c; 查找2处 “$cache_ecmstourlurlencode(EcmsGetReturnUrl());” 修改为 “$cache_ecmstourlurlencode($_POST[&topic_c449dd39-aa1d-41…

数据分析系列--②RapidMiner导入数据和存储过程

一、下载数据 二、导入数据 1. 在本地计算机中创建3个文件夹 2. 从本地选择.csv或.xlsx 三、界面说明 四、存储过程 1.保存 Congratulations, you are done. 一、下载数据 点击下载AssociationAnalysisData.xlsx数据集 二、导入数据 1. 在本地计算机中创建3个文件夹 2. 从…

跨境支付领域中常用的英文单词(持续更新)

### **1. 支付方式 (Payment Methods)** 1. Credit Card 2. Debit Card 3. Bank Transfer 4. Wire Transfer 5. PayPal 6. Alipay 7. WeChat Pay 8. Apple Pay 9. Google Pay 10. Cryptocurrency 11. Digital Wallet 12. Mobile Payment 13. Cash on D…

BGP协议

BGP作为一种外部网关动态路由协议&#xff0c;其基于TCP的179号端口&#xff0c;其联系不同自治系统间的通讯 关于BGP的版本&#xff0c;最早只有1&#xff0c;2&#xff0c;3这三个版本&#xff0c;后经过改进有了BGP4&#xff0c;目前普遍使用BGP4版本&#xff0c;其可兼容I…

用一个例子详细说明python单例模式

单例模式是一种设计模式&#xff0c;它确保一个类只有一个实例&#xff0c;并提供一个全局访问点来访问该实例。这在需要控制资源&#xff08;如数据库连接、文件系统等&#xff09;的访问时非常有用。 下面是一个使用Python实现单例模式的例子&#xff1a; class Singleton:…