03、ThingsBoard-ThingsBoard安装

1、Windows下编译安装

1.1、概述

很多的人反馈在Windows环境下安装thingsboard总是编译不过,其实大家的环境基本上问题都不大,因为thingsboard需要对前端进行install,然后生成node_modules文件,因为这里面需要去外网下载很多的东西,很多人的网络不好,就会导致报错,基本上都是网络导致的,目前thingsboard的jdk版本需要11了,这是前提,其它的版本只要比我文档的高基本上都没有问题,具体的安装细节,在网上搜一下一大堆

1.2、安装jdk

C:\Users\Administrator>java -version
java version "11.0.12" 2021-07-20 LTS
Java(TM) SE Runtime Environment 18.9 (build 11.0.12+8-LTS-237)
Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.12+8-LTS-237, mixed mode)

1.3、安装maven(maven中的jdk一定要一样哦)

C:\Users\Administrator>mvn -v
Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f)
Maven home: D:\yuxinwei\java\apache-maven-3.6.3\bin\..
Java version: 11.0.12, vendor: Oracle Corporation, runtime: D:\yuxinwei\java\jdk-11.0.12
Default locale: zh_CN, platform encoding: GBK
OS name: "windows 10", version: "10.0", arch: "amd64", family: "windows"

1.4、Node版本

C:\Users\Administrator>node -v
v14.12.0

1.5、npm版本

C:\Users\Administrator>npm -v
6.14.8

1.6、yarn版本

C:\Users\Administrator>yarn -v
1.22.11

1.7、新建thingsboard-3.4.2文件夹,并进入

1.8、进入thingsboard-3.4.2目录然后拉取代码

git clone -b v3.4.2 https://github.com/thingsboard/thingsboard

1.9、在进入到thingsboard目录下,使用cmd进入命令行窗口,执行

mvn clean install -DskipTests

如果中途报错,就反复执行命令,95%都是网络差原因导致报错。

1.10、将工程使用IDEA打开,配置maven环境以及jdk环境

1.11、安装postgres,版本大于11

docker run -d --name postgres -p 5432:5432 -e POSTGRES_USER=postgres -e POSTGRES_PASSWORD=test123456 -v ~/docker_data/pgsql/data:/var/lib/postgresql/data postgres:12
注意:
POSTGRES_PASSWORD:密码需要设置自己规定的密码

1.12、在Navicate创建thingsboard3.4.2数据库

新建数据库 thingsboard3.4.2,然后修改thingsboard程序中的 thingsboard.yml 中的数据库连接的名字也叫 thingsboard3.4.2,同时修改自己安装PG的密码。

使用Navicate连接PG,然后新建thingsboard3.4.2,需要注意的是如果Navicate的版本太低了,可能会报错,尽量版本高一点,我目前使用的是Navicate15。

然后修改thingsboard的application.yml文件,使用ctrl + f 搜索jpa,就可以找到如下图位置,进行配置数据的相关信息。

1.13、将程序dao模块下的sql文件夹拷贝到application模块的data目录下

1.14、启动ThingsboardInstallApplication进行安装表结构

如果启动报错显示如下

需要修改:

然后在重新启动就成功了,最后查看thingsboard3.4.2是否生成表结构

1.15、启动ThingsboardServerApplication服务

如果启动报错显示如下

需要修改:

1.16、访问 http://localhost:8080/login

欢迎加扣群594880091 

2、Linux环境下Docker-Compose安装

1、环境准备

我平时都是使用window本地编译安装用于本地开放或者研究源码,同时也在Linux服务上直接使用Docker-Compose快速拉起一个thingsboard服务,目前我使用的是centos,有些使用Ubuntu,大同小异。

安装Docker

环境查看

# 系统内核是3.10以上
[root@aldricheugene /]# uname -r
3.10.0-514.26.2.el7.x86_64
# 系统版本
[root@aldricheugene /]# cat /etc/os-release 
NAME="CentOS Linux"
VERSION="7 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="7"
PRETTY_NAME="CentOS Linux 7 (Core)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:7"
HOME_URL="https://www.centos.org/"
BUG_REPORT_URL="https://bugs.centos.org/"
CENTOS_MANTISBT_PROJECT="CentOS-7"
CENTOS_MANTISBT_PROJECT_VERSION="7"
REDHAT_SUPPORT_PRODUCT="centos"
REDHAT_SUPPORT_PRODUCT_VERSION="7"

帮助文档

https://docs.docker.com/engine/install/centos/

安装流程

# 1、卸载旧的版本
sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine

# 2、需要的安装包
sudo yum install -y yum-utils

# 3、设置镜像的仓库,默认是从国外的,不推荐
sudo yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo

# 推荐使用国内的
sudo yum-config-manager \
		--add-repo \
		https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

# 4、更新yum软件包索引
sudo yum makecache fast

# 5、安装docker相关的  docker-ce 社区版  ee 企业版
yum install -y docker-ce docker-ce-cli containerd.io

# 6、启动docker
systemctl start docker

# 7、设置开机启动
systemctl enable docker

# 8、使用docker version查看是否安装成功
docker version

安装Docker-Compose

下载

国外:
sudo curl -L "https://github.com/docker/compose/releases/download/1.28.6/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

国内:
sudo curl -L https://get.daocloud.io/docker/compose/releases/download/1.24.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose

赋予权限

sudo chmod +x /usr/local/bin/docker-compose

验证

docker-compose --version

2、创建目录

[root@aldricheugene ~]# cd
[root@aldricheugene ~]# mkdir thingsboard
[root@aldricheugene ~]# cd thingsboard/

3、创建docker-compose.yml

进入到自己创建的thingsboard目录下,创建一个docker-compose.yml文件

[root@aldricheugene thingsboard]# touch docker-compose.yml

4、编写docker-compose.yml文件

官方文档

https://thingsboard.io/docs/user-guide/install/docker/

安装类型选择

官方根据所使用的数据库,提供了三种类型的 ThingsBoard 单实例 docker 镜像:

  • thingsboard/tb-postgres:带有 PostgreSQL 数据库的 ThingsBoard 的单个实例。具有至少 1GB RAM 和最小负载(每秒几条消息)的小型服务器的推荐选项。推荐 2-4GB(个人玩推荐使用)。
  • thingsboard/tb-cassandra:ThingsBoard 与 Cassandra 数据库的单个实例。性能最高且推荐的选项,但需要至少 4GB 的 RAM,推荐 8GB。(公司少量设备推荐使用)
  • thingsboard/tb:带有嵌入式 HSQLDB 数据库的 ThingsBoard 的单个实例(不推荐使用)。

队列选择

ThingsBoard 能够使用各种消息系统来存储 ThingsBoard 服务之间的消息和通信:

  • In Memory:内存队列实现是内置的和默认的。它对开发 (PoC) 环境很有用,不适合生产部署或任何类型的集群部署。
  • Kafak:这个队列现在用于大多数 ThingsBoard 生产环境。它对本地部署和私有云部署都很有用,需要根据公司的业务量来选择,而且需要有人懂kafka,不然生产环境遇到问题就很难解决。
  • RabbitMQ:如果业务负载不是很大,并且你已经使用过这个消息系统,那么推荐使用RabbitMQ

其他的一些第三方的我就不描述了,如果是自己玩或者设备很少使用内存队列足够了,如果是业务量一般大就使用RabbitMQ,业务量非常大使用Kafka集群。

编写配置

如果选择【thingsboard/tb-postgres + In Memory】来安装(个人或者设备量很少使用)

version: '3.0'
services:
  mytb:
    restart: always
    image: "thingsboard/tb-postgres"
    ports:
      - "8080:9090"
      - "1883:1883"
      - "7070:7070"
      - "5683-5688:5683-5688/udp"
    environment:
      TB_QUEUE_TYPE: in-memory
    volumes:
      - ~/.mytb-data:/data
      - ~/.mytb-logs:/var/log/thingsboard

如果选择【thingsboard/tb-postgres + Kafka】来安装(设备量多的情况)

version: '3.0'
services:
  zookeeper:
    restart: always
    image: "zookeeper:3.5"
    ports:
      - "2181:2181"
    environment:
      ZOO_MY_ID: 1
      ZOO_SERVERS: server.1=zookeeper:2888:3888;zookeeper:2181
  kafka:
    restart: always
    image: wurstmeister/kafka
    depends_on:
      - zookeeper
    ports:
      - "9092:9092"
    environment:
      KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
      KAFKA_LISTENERS: INSIDE://:9093,OUTSIDE://:9092
      KAFKA_ADVERTISED_LISTENERS: INSIDE://:9093,OUTSIDE://kafka:9092
      KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: INSIDE:PLAINTEXT,OUTSIDE:PLAINTEXT
      KAFKA_INTER_BROKER_LISTENER_NAME: INSIDE
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
  mytb:
    restart: always
    image: "thingsboard/tb-postgres"
    depends_on:
      - kafka
    ports:
      - "8080:9090"
      - "1883:1883"
      - "7070:7070"
      - "5683-5688:5683-5688/udp"
    environment:
      TB_QUEUE_TYPE: kafka
      TB_KAFKA_SERVERS: kafka:9092
    volumes:
      - ~/.mytb-data:/data
      - ~/.mytb-logs:/var/log/thingsboard

如果选择【thingsboard/tb-postgres + Kafka】来安装(设备量多的情况)

需要修改TB_QUEUE_RABBIT_MQ_USERNAME、TB_QUEUE_RABBIT_MQ_PASSWORD、TB_QUEUE_RABBIT_MQ_HOST这三个配置。

version: '3.0'
services:
  mytb:
    restart: always
    image: "thingsboard/tb-postgres"
    ports:
      - "8080:9090"
      - "1883:1883"
      - "7070:7070"
      - "5683-5688:5683-5688/udp"
    environment:
      TB_QUEUE_TYPE: rabbitmq
      TB_QUEUE_RABBIT_MQ_USERNAME: YOUR_USERNAME
      TB_QUEUE_RABBIT_MQ_PASSWORD: YOUR_PASSWORD
      TB_QUEUE_RABBIT_MQ_HOST: localhost
      TB_QUEUE_RABBIT_MQ_PORT: 5672
    volumes:
      - ~/.mytb-data:/data
      - ~/.mytb-logs:/var/log/thingsboard

配置介绍

  • 8080:9090:将本地端口 8080 连接到公开的内部 HTTP 端口 9090
  • 1883:1883:将本地端口 1883 连接到公开的内部 MQTT 端口 1883
  • 7070:7070:将本地端口 7070 连接到暴露的内部边缘 RPC 端口 7070
  • 5683-5688:5683-5688/udp:将本地 UDP 端口 5683-5688 连接到公开的内部 COAP 和 LwM2M 端口
  • ~/.mytb-data:/data:将主机的目录安装~/.mytb-data到 ThingsBoard 数据库数据目录
  • ~/.mytb-logs:/var/log/thingsboard:将主机的目录安装~/.mytb-logs到 ThingsBoard 日志目录
  • mytb:容器名称
  • restart: always:系统重启时自动启动 ThingsBoard,失败时自动重启。
  • image: thingsboard/tb-postgres:镜像,也可以是thingsboard/tb-cassandra或thingsboard/tb

创建数据目录

mkdir -p ~/.mytb-data && sudo chown -R 799:799 ~/.mytb-data
mkdir -p ~/.mytb-logs && sudo chown -R 799:799 ~/.mytb-logs

5、启动

进入到thingsboard的目录下,下面有一个docker-compose.yml文件,然后选择上面合适的配置拷贝进行,然后保存,我选择的是【thingsboard/tb-postgres + In Memory】方式。

然后在当前文件目录下执行:

docker compose up -d

6、查看日志

# 查看启动后的容器名称
docker ps
# 查看容器启动的日志
docker-compose logs -f 指定容器名称

3、k8s安装

需要服务器,更新中...

猜你喜欢

转载自blog.csdn.net/qq_38749525/article/details/128570682