ThingsBoard开源物联网平台智慧农业实例快速部署教程(Ubuntu、CentOS适用)

时间:2021-10-11 01:23:14

ThingsBoard部署教程文档

1. JDK环境安装

Linux以Ubuntu和CentOS为主流,以此两个发行版为例进行流程命令示例,截图按照Ubuntu Server实际环境。

安装JDK11。(Debain apt源下载慢可以考虑换国内软件源,yum也是如此)

  • Ubuntu
sudo apt update
sudo apt install openjdk-11-jdk
  • CentOS
# Add latest EPEL release for CentOS 7
sudo yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
sudo yum install java-11-openjdk

ThingsBoard开源物联网平台智慧农业实例快速部署教程(Ubuntu、CentOS适用)

此时用java -version查看是JDK11的版本信息

java -version

ThingsBoard开源物联网平台智慧农业实例快速部署教程(Ubuntu、CentOS适用)

如果出现的1.8或者其他的版本信息,证明你之前装过JDK并正确配置,需要手动配置,手动配置方式如下:

sudo update-alternatives --config java

ThingsBoard开源物联网平台智慧农业实例快速部署教程(Ubuntu、CentOS适用)

选择JDK11对应的版本切换到当前的环境下。

2. 安装thingsBoard

2.1 ThingsBoard软件包安装

  • Ubuntu
# 下载安装包
wget https://github.com/thingsboard/thingsboard/releases/download/v3.4.4/thingsboard-3.4.4.deb
# 安装
sudo dpkg -i thingsboard-3.4.4.deb
  • CentOS
# 下载安装包
wget https://github.com/thingsboard/thingsboard/releases/download/v3.4.4/thingsboard-3.4.4.rpm
# 安装
sudo rpm -Uvh thingsboard-3.4.4.rpm

ThingsBoard开源物联网平台智慧农业实例快速部署教程(Ubuntu、CentOS适用)

ThingsBoard开源物联网平台智慧农业实例快速部署教程(Ubuntu、CentOS适用)

2.2 PostgreSQL安装

鉴于初期的场景message不会并发大于5000条,在此仅安装PostgreSQL

  • Ubuntu
# 一般服务器自带wget,如果没有请用如下命令安装
sudo apt install -y wget

# 引入镜像源密钥
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -

# 将镜像源添加到本机软件源
RELEASE=$(lsb_release -cs)
echo "deb http://apt.postgresql.org/pub/repos/apt/ ${RELEASE}"-pgdg main | sudo tee  /etc/apt/sources.list.d/pgdg.list

# 安装并启动 postgresql 服务:
sudo apt update
sudo apt -y install postgresql-12
sudo systemctl start postgresql
# 设置开机启动
sudo systemctl enable postgresql
  • CentOS
sudo yum install -y wget
# 更新软件源
sudo yum update
# 安装
sudo yum -y install https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
# 配置
sudo yum -y install epel-release yum-utils
sudo yum-config-manager --enable pgdg12
sudo yum install postgresql12-server postgresql12
# 初始化PostgreSQL DB
sudo /usr/pgsql-12/bin/postgresql-12-setup initdb
sudo systemctl start postgresql-12
# 开机启动
sudo systemctl enable --now postgresql-12
  1. 安装wget
    ThingsBoard开源物联网平台智慧农业实例快速部署教程(Ubuntu、CentOS适用)

  2. 引入密钥(CentOS无此过程)
    ThingsBoard开源物联网平台智慧农业实例快速部署教程(Ubuntu、CentOS适用)

  3. 引入软件源
    ThingsBoard开源物联网平台智慧农业实例快速部署教程(Ubuntu、CentOS适用)

    可以打开/etc/apt/sources.list.d/pgdg.list确认。vim /etc/apt/sources.list.d/pgdg.list
    ThingsBoard开源物联网平台智慧农业实例快速部署教程(Ubuntu、CentOS适用)

    可见内容添加成功,需要更新软件列表

  4. 更新软件列表
    ThingsBoard开源物联网平台智慧农业实例快速部署教程(Ubuntu、CentOS适用)

  5. 安装postgresql服务并启动
    ThingsBoard开源物联网平台智慧农业实例快速部署教程(Ubuntu、CentOS适用)

    ThingsBoard开源物联网平台智慧农业实例快速部署教程(Ubuntu、CentOS适用)

    不确定是否启动成功可以systemctl status postgresql确认一下
    ThingsBoard开源物联网平台智慧农业实例快速部署教程(Ubuntu、CentOS适用)

2.3 PostgreSQL初始化配置

为thingsboard的例程添加数据库的初始化配置:

切换到postgres用户下,为登录postgresql用户设置密码

sudo su - postgres
psql
# 此行命令后按照提示输入密码
\password
# 输入后退出
\q
  1. 切换用户
    ThingsBoard开源物联网平台智慧农业实例快速部署教程(Ubuntu、CentOS适用)

  2. 进入数据库
    ThingsBoard开源物联网平台智慧农业实例快速部署教程(Ubuntu、CentOS适用)

  3. 设置密码
    ThingsBoard开源物联网平台智慧农业实例快速部署教程(Ubuntu、CentOS适用)

  4. \q退出数据库,键盘Ctrl+D退出bash回到主用户
    ThingsBoard开源物联网平台智慧农业实例快速部署教程(Ubuntu、CentOS适用)

(注意)CentOS下多一步配置:

编辑配置文件/var/lib/pgsql/12/data/pg_hba.conf

sudo vim /var/lib/pgsql/12/data/pg_hba.conf

定位到以下内容,将ident修改为md5

# IPv4 local connections:
host    all             all             127.0.0.1/32            ident

修改后

host    all             all             127.0.0.1/32            md5

重启服务

sudo systemctl restart postgresql-12.service

登录数据库并创建数据库

psql -U postgres -d postgres -h 127.0.0.1 -W
CREATE DATABASE thingsboard;
\q

ThingsBoard开源物联网平台智慧农业实例快速部署教程(Ubuntu、CentOS适用)

3. 修改ThingsBord的配置

编辑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

注意下面的配置内容可选,如果你的服务器内存是1G的,比较受限,需要额外配置以下jvm以保证效率。

# Update ThingsBoard memory usage and restrict it to 256MB in /etc/thingsboard/conf/thingsboard.conf
export JAVA_OPTS="$JAVA_OPTS -Xms256M -Xmx256M"

ThingsBoard开源物联网平台智慧农业实例快速部署教程(Ubuntu、CentOS适用)

4. 运行安装脚本测试

我们没有经过消息队列等辅助高效缓存配件的安装,后续需要用到MQ、Kafka等可以再行安装,这里采用纯内存的策略。

运行安装脚本,--loadDemo其会导入几个用户、设备、资产、规则等用于示例

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

ThingsBoard开源物联网平台智慧农业实例快速部署教程(Ubuntu、CentOS适用)

ThingsBoard开源物联网平台智慧农业实例快速部署教程(Ubuntu、CentOS适用)

重启thingsboard服务

systemctl restart thingsboard.service
# 查看一下
systemctl status thingsboard.service

ThingsBoard开源物联网平台智慧农业实例快速部署教程(Ubuntu、CentOS适用)

安全组策略放行8080端口,防火墙放行8080端口。

安全组策略需要在你的云实例控制台上自行配置,而防火墙因人而异,你的服务器用iptables或者firewalld均有不同的操作方式

这里采用firewalld

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

5. 访问测试

访问http://【你的服务器ip】:8080测试

ThingsBoard开源物联网平台智慧农业实例快速部署教程(Ubuntu、CentOS适用)

这里有几个默认的账户

人员 账号 密码
系统管理员 sysadmin@thingsboard.org sysadmin
租户管理员 tenant@thingsboard.org tenant
客户管理员 customer@thingsboard.org customer

注意:资源有限的服务器(1-2CPU、1-2GB RAM),一般Web UI的启动需要等待90秒左右。

登录系统管理员:

ThingsBoard开源物联网平台智慧农业实例快速部署教程(Ubuntu、CentOS适用)

登录租户管理员:

ThingsBoard开源物联网平台智慧农业实例快速部署教程(Ubuntu、CentOS适用)

运行日志在/var/log/thingsboard

过滤错误日志可以快速使用如下命令:

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

6. 导入一个仪表盘库

6.1 导出仪表盘并导入自己的项目

如下是官方智慧农业仪表盘案例

https://thingsboard.io/smart-farming/

点击查看在线案例

ThingsBoard开源物联网平台智慧农业实例快速部署教程(Ubuntu、CentOS适用)

ThingsBoard开源物联网平台智慧农业实例快速部署教程(Ubuntu、CentOS适用)

右上角选择导出

ThingsBoard开源物联网平台智慧农业实例快速部署教程(Ubuntu、CentOS适用)

导出后是个json文件

ThingsBoard开源物联网平台智慧农业实例快速部署教程(Ubuntu、CentOS适用)

ThingsBoard开源物联网平台智慧农业实例快速部署教程(Ubuntu、CentOS适用)

ThingsBoard开源物联网平台智慧农业实例快速部署教程(Ubuntu、CentOS适用)

ThingsBoard开源物联网平台智慧农业实例快速部署教程(Ubuntu、CentOS适用)

6.2 添加客户以及用户

添加一个客户

ThingsBoard开源物联网平台智慧农业实例快速部署教程(Ubuntu、CentOS适用)

ThingsBoard开源物联网平台智慧农业实例快速部署教程(Ubuntu、CentOS适用)

客户组里添加一个用户,激活方式可以选择激活链接或者邮箱链接,我们是测试,邮箱也是虚构的,那么就选择链接激活。

ThingsBoard开源物联网平台智慧农业实例快速部署教程(Ubuntu、CentOS适用)

点击激活

ThingsBoard开源物联网平台智慧农业实例快速部署教程(Ubuntu、CentOS适用)

激活后就到了设置密码的界面。

ThingsBoard开源物联网平台智慧农业实例快速部署教程(Ubuntu、CentOS适用)

创建完密码就登录进来了

ThingsBoard开源物联网平台智慧农业实例快速部署教程(Ubuntu、CentOS适用)

6.3 装饰仪表盘并分配给客户

我们返回租户管理员的账号

将导入的仪表盘分配给客户

ThingsBoard开源物联网平台智慧农业实例快速部署教程(Ubuntu、CentOS适用)

选择新添加的用户

ThingsBoard开源物联网平台智慧农业实例快速部署教程(Ubuntu、CentOS适用)

设置首页为仪表盘

ThingsBoard开源物联网平台智慧农业实例快速部署教程(Ubuntu、CentOS适用)

编辑仪表盘

ThingsBoard开源物联网平台智慧农业实例快速部署教程(Ubuntu、CentOS适用)

ThingsBoard开源物联网平台智慧农业实例快速部署教程(Ubuntu、CentOS适用)

ThingsBoard开源物联网平台智慧农业实例快速部署教程(Ubuntu、CentOS适用)

ThingsBoard开源物联网平台智慧农业实例快速部署教程(Ubuntu、CentOS适用)

打开设置的显示仪表盘标题

ThingsBoard开源物联网平台智慧农业实例快速部署教程(Ubuntu、CentOS适用)

ThingsBoard开源物联网平台智慧农业实例快速部署教程(Ubuntu、CentOS适用)

登录新增用户,首页便是仪表盘

ThingsBoard开源物联网平台智慧农业实例快速部署教程(Ubuntu、CentOS适用)

可以全屏显示,也可以将某个小部分进行全屏显示。

活动数据需要写硬件程序并生成数字孪生的实体进行相应映射。