开源物联网系统 ThingsBoard 上手
centos yum 被占用问题解决:
描述:Another app is currently holding the yum lock; waiting for it to exit
参考:https://blog.csdn.net/Dan1374219106/article/details/112450922
查看yum占用:
ps aux | grep yum
解除占用
rm -f /var/run/yum.pid
安装环境:CentOS 7;ThingsBoard CE 3.4.1
0. 预备
# Install wget
sudo yum install -y nano wget
# Add latest EPEL release for CentOS 7
sudo yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
1. 安装 Java 11(OpenJDK)
sudo yum install java-11-openjdk
设置 Java 11 为系统jdk默认版本
sudo update-alternatives --config java
检查 java 版本
java -version
输出:
openjdk version "11.0.xx"
OpenJDK Runtime Environment (...)
OpenJDK 64-Bit Server VM (build ...)
2. ThingsBoard 服务安装
下载安装包
wget https://github.com/thingsboard/thingsboard/releases/download/v3.4.1/thingsboard-3.4.1.rpm
安装 ThingsBoard 服务
# 这里有个坑,网速慢,下载下来有两个,实际我是安装的 thingsboard-3.4.1.rpm.1
sudo rpm -Uvh thingsboard-3.4.1.rpm
3. 配置 ThingsBoard 数据库
ThingsBoard 支持关系型数据库,或者关系型数据库+时序数据库(Cassandra,TimescaleDB), 这里使用 PostgreSQL。
# 升级系统
sudo yum update
安装 PostgreSQL
# Install the repository RPM (for CentOS 7):
sudo yum -y install https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
# Install packages
sudo yum -y install epel-release yum-utils
sudo yum-config-manager --enable pgdg12
sudo yum install postgresql12-server postgresql12
# Initialize your PostgreSQL DB
sudo /usr/pgsql-12/bin/postgresql-12-setup initdb
sudo systemctl start postgresql-12
# Optional: Configure PostgreSQL to start on boot
sudo systemctl enable --now postgresql-12
为 postgres 用户设置密码:
sudo su - postgres
psql
\password
\q
Ctrl+D
退出。
设置验证模式为 MD5:
sudo vim /var/lib/pgsql/12/data/pg_hba.conf
定位到以下内容:
# IPv4 local connections:
host all all 127.0.0.1/32 ident
将 ident 替换为 md5
host all all 127.0.0.1/32 md5
重启 PostgreSQL 服务,重载新的配置
sudo systemctl restart postgresql-12.service
创建 thingsboard 数据库
psql -U postgres -d postgres -h 127.0.0.1 -W
执行以下 SQL 语句:
CREATE DATABASE thingsboard;
\q
编辑 ThingsBoard 配置文件
sudo vim /etc/thingsboard/conf/thingsboard.conf
添加如下内容,并配置相应的数据库密码:
# 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
4. 选择 ThingsBoard 队列服务
默认为 内存 方式
5. 内存低的电脑,可以更改配置文件(可选)
sudo vim /etc/thingsboard/conf/thingsboard.conf
增加以下内容:
# Update ThingsBoard memory usage and restrict it to 256MB in /etc/thingsboard/conf/thingsboard.conf
export JAVA_OPTS="$JAVA_OPTS -Xms256M -Xmx256M"
6. 运行安装脚本
# --loadDemo option will load demo data: users, devices, assets, rules, widgets.
sudo /usr/share/thingsboard/bin/install/install.sh --loadDemo
7. 启动 ThingsBoard 服务
sudo firewall-cmd --zone=public --add-port=8080/tcp --permanent
sudo firewall-cmd --reload
启动 ThingsBoard:
sudo service thingsboard start
访问地址:
http://localhost:8080/
如果执行了第六步,会有示例用户信息:
System Administrator: sysadmin@thingsboard.org / sysadmin
Tenant Administrator: tenant@thingsboard.org / tenant
Customer User: customer@thingsboard.org / customer
安装后
-
故障排查,ThingsBoard 日志位置:
/var/log/thingsboard
-
查看错误日志:
cat /var/log/thingsboard/thingsboard.log | grep ERROR
初次练手
参考:Getting Started with ThingsBoard | ThingsBoard Community Edition