03ThingsBoard-ThingsBoard安装
Posted 了凡啊
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了03ThingsBoard-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安装
需要服务器,更新中...
以上是关于03ThingsBoard-ThingsBoard安装的主要内容,如果未能解决你的问题,请参考以下文章
[2016-03-03][UVA][120][Stacks of Flapjacks]