在Centos8安装ThingsBoard

硬件要求取决于所选数据库和连接到系统的设备数量。要在单台机器上运行 ThingsBoard 和 PostgreSQL,您至少需要 4Gb 的 RAM。

本文以Centos8系统为例,演示安装部署ThingsBoard全过程。

安装必要的工具

# Install wget
sudo dnf install -y nano wget
# Add latest EPEL release for CentOS 8
sudo dnf install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm

1.安装 Java 17(OpenJDK)

ThingsBoard 服务在 Java 17 上运行

# 安装 OpenJDK 17
sudo dnf install java-17-openjdk
# 将操作系统配置为默认使用 OpenJDK 17
sudo update-alternatives --config java
# 检查安装
java -version

2. ThingsBoard 服务安装

下载安装包。

wget https://github.com/thingsboard/thingsboard/releases/download/v3.7/thingsboard-3.7.rpm

安装 ThingsBoard 作为服务

sudo rpm -Uvh thingsboard-3.7.rpm

如果执行命令出现超时或其他原因无法下载,可以直接先把文件下载下来,再拷贝到linux机器上,定位到thingsboard-3.7.rpm文件所在的目录,再执行 sudo rpm -Uvh thingsboard-3.7.rpm

无法建立连接报错

 定位到指定文件的路径,再执行命令:

 

3.配置ThingsBoard数据库

PostgreSQL 安装

# Update your system
sudo dnf update

安装存储库

# Install the repository RPM:
sudo dnf -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 postgresql15 postgresql15-server
# Initialize your PostgreSQL DB
sudo /usr/pgsql-15/bin/postgresql-15-setup initdb
sudo systemctl start postgresql-15
# Optional: Configure PostgreSQL to start on boot
sudo systemctl enable --now postgresql-15

 

安装 PostgreSQL 后,您可能需要创建新用户或设置主用户的密码。以下说明将有助于设置主 postgresql 用户的密码

# 切换到postgres用户
sudo su - postgres
# 执行psql psql
# 设置密码命令 \password
# 退出psql命令 \q

 

然后,按“Ctrl+D”返回主用户控制台。

配置完密码后,连接数据库创建thingsboard DB:

psql -U postgres -d postgres -h 127.0.0.1 -W

执行创建数据库语句

CREATE DATABASE thingsboard;
\q

 

 远程连接服务器数据库配置

由于安装数据库后,进入了postgres用户,记得切回root用户,否则回遇到一些命令权限不足的问题。

(1)开放5432端口:

sudo firewall-cmd --zone=public --add-port=5432/tcp --permanent
sudo firewall-cmd --reload

 

 (2)修改配置文件

找到postgresql.conf和pg_hba.conf配置文件

如果找不到,可以切换到数据库用户,执行命令找到配置文件路径:

# 切换到postgres用户
sudo -i -u postgres 
# 执行查询
psql -d postgres -c "SHOW config_file;"
# 切换会root用户
su

 

 

 修改postgresql.conf,找到listen_addresses,将localhost改成*,去掉#注释:

 修改pg_hba.conf:

在文件末尾或适当的位置添加一条规则,以允许来自您希望连接的客户端 IP 地址或 IP 地址范围的连接。

例如,如果您想允许来自任何 IP 地址的连接(出于测试目的,不推荐在生产环境中这样做),您可以添加类似这样的规则:

host    all             all             0.0.0.0/0               md5

 

 但是,出于安全考虑,应该指定具体的 IP 地址或 IP 地址范围。本文主要用做测试,就不限制IP了。

(3)重启 PostgreSQL 服务

使用适当的命令(如 systemctl restart postgresql-15 )重启 PostgreSQL 服务,以使更改生效

(4)测试连接

使用适当的客户端工具(如 psql、pgAdmin、DBeaver、navicat 等)从远程机器尝试连接到 PostgreSQL 数据库服务器

以Navicat为例,输入主机、端口以及数据库、用户名、密码即可连接:

 

ThingsBoard 配置

编辑 ThingsBoard 配置文件

sudo nano /etc/thingsboard/conf/thingsboard.conf

配置文件中添加以下几行。不要忘记“PUT_YOUR_POSTGRESQL_PASSWORD_HERE”替换为你真实的 postgres 用户密码

# DB Configuration 
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
# Specify partitioning size for timestamp key-value storage. Allowed values: DAYS, MONTHS, YEARS, INDEFINITE.
export SQL_POSTGRES_TS_KV_PARTITIONING=MONTHS

 

或者直接使用xftp打开文本编辑器进行编辑:

 

4. 选择 内存作为ThingsBoard 队列服务

编辑 ThingsBoard 配置文件

sudo nano /etc/thingsboard/conf/thingsboard.conf

将以下行添加到配置文件。

# Update ThingsBoard memory usage and restrict it to 2G in /etc/thingsboard/conf/thingsboard.conf
export JAVA_OPTS="$JAVA_OPTS -Xms2G -Xmx2G"

5. 运行安装脚本

一旦安装了 ThingsBoard 服务并更新了 DB 配置,您就可以执行以下脚本

# --loadDemo option will load demo data: users, devices, assets, rules, widgets.
sudo /usr/share/thingsboard/bin/install/install.sh --loadDemo 

注意:记得切回root用户,如果没有切回postgres用户执行一些命令可能会权限不足,如:

6. 启动 ThingsBoard 服务

ThingsBoard UI 默认可通过 8080 端口访问。请确保您的 8080 端口可通过防火墙访问。要打开 8080 端口,请执行以下命令

sudo firewall-cmd --zone=public --add-port=8080/tcp --permanent
sudo firewall-cmd --reload

执行以下命令启动ThingsBoard:

sudo service thingsboard start

 

一旦启动,您将能够使用以下链接打开 Web UI:

http://localhost:8080/

 

如果在执行安装脚本期间指定了–loadDemo,则可以使用以下默认凭据:

  • 系统管理员sysadmin@thingsboard.org / sysadmin
  • 租户管理员tenant@thingsboard.org / tenant
  • 客户用户customer@thingsboard.org / customer

如果要更换端口,比如8077,请修改配置文件,搜索8080端口都更改为8077:

 执行以上命令:

 系统运行示例:

 

7. 故障排除

ThingsBoard 日志存储在以下目录中:

/var/log/thingsboard

您可以发出以下命令来检查后端是否存在任何错误:

cat /var/log/thingsboard/thingsboard.log | grep ERROR

 

 

参考文档:https://thingsboard.io/docs/user-guide/install/rhel/?ubuntuThingsboardQueue=inmemory

<本文完>

 

posted @ 2024-09-26 15:50  孤草之魂  阅读(61)  评论(0编辑  收藏  举报