当前位置: 首页 > article >正文

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

在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秒启动。


http://www.kler.cn/a/522298.html

相关文章:

  • 使用Redis生成全局唯一ID示例
  • 动态规划DP 数字三角型模型 最低通行费用(题目详解+C++代码完整实现)
  • 【Linux探索学习】第二十七弹——信号(一):Linux 信号基础详解
  • 25【数组的理解】
  • 虚幻基础08:组件接口
  • [牛客]公交线路(dijkstra+链式前向星)
  • 【Linux】互斥锁、基于阻塞队列、环形队列的生产消费模型、单例线程池
  • “基因合作:生命演化中的共生与目的性”
  • 【2024年华为OD机试】 (A卷,200分)- 开放日活动、取出尽量少的球(JavaScriptJava PythonC/C++)
  • 6. 使用springboot做一个音乐播放器软件项目【1.0版项目完结】附带源码~
  • Android SystemUI——最近任务列表启动(十八)
  • FPGA 26,数码管动态显示,解析与实现( 使用 Xilinx Vivado 实现数码管动态显示 )
  • 计算机网络之计算机网络基本概念
  • 【Leetcode 每日一题】45. 跳跃游戏 II
  • Linux 命令之技巧(Tips for Linux Commands)
  • QT 笔记
  • 深入探讨防抖函数中的 this 上下文
  • 论文笔记(六十五)Schmidt-EKF-based Visual-Inertial Moving Object Tracking
  • LeetCode-175. 组合两个表
  • H2 Database安装部署
  • VMware 中Ubuntu无网络连接/无网络标识解决方法【已解决】
  • PHP Error处理与优化指南
  • volatile之四类内存屏障指令 内存屏障 面试重点 底层源码
  • 多模态论文笔记——TECO
  • 已解决:Win10任务状态栏卡死点击无响应的解决方案
  • 【SAP-PP】生产订单和计划订单