首页 > 其他分享 >从零实战本地服务器部署 Docker 安装 ThingsBoard PE 专业版(适用于Cassandra + Kafka + Postgres企业级生产环境)

从零实战本地服务器部署 Docker 安装 ThingsBoard PE 专业版(适用于Cassandra + Kafka + Postgres企业级生产环境)

时间:2024-03-30 23:30:03浏览次数:28  
标签:专业版 compose Postgres 安装 企业级 docker mytbpe data ThingsBoard

目录

1、准备工作

2、本地服务器Linux Centos7.9系统安装docker

2.1、检查Linux的内核版本

2.2、卸载Docker旧版本(若有需要)

2.3、安装Docker

2.4、安装Docker引擎

2.5、 启动docker和设置开机⾃启动

3、使用 Docker 安装 ThingsBoard PE

3.1、 拉取 ThingsBoard PE 镜像

3.2、获取许可证密钥

3.3、为 ThingsBoard 队列服务创建 docker compose 文件

3.4、运行安装

3.4.1、创建数据存储和日志的目录

3.4.2、启动 docker compose 进行安装

3.4.3、分离、停止和启动命令


1、准备工作

  1. 服务器1台:戴尔R630。
  2. 确保网络畅通。
  3. 下载Centos镜像文件。
  4. 使用 Rufus 烧录软件,制作服务器启动U盘。
  5. 安装CentOS_7.9版本 Linux系统。
  • 上述工作尚未准备好的,请参照下面文章:

一、戴尔R630本地服务器搭建Linux系统软件硬件环境配置-CSDN博客文章浏览阅读1k次,点赞32次,收藏19次。向移动、电信、联通申请带有固定IP地址的专线,不同运营商的宽带速率、稳定性和价格差距较大,可根据应用场景和需要选择。光猫开启桥接和开启IPV6,直连服务器,采用PPPoE进行服务器拨号上网。服务器需要2台以上,1台作为主节点,另1台作为⼯作节点。我们从零实战K8S部署ThingsBoard专业版集群,主要用于生产环境,基于长期生产成本的考虑,采用的是方案三。路由器1台,采用中兴WI-FI 6千兆双频路由器,1个WAN口、3个LAN口,搭建一个局域网。部署时,使用2台服务器,1台作为主节点。https://blog.csdn.net/weixin_67440240/article/details/136683361二、戴尔R630本地服务器安装Linux Centos7.9系统_戴尔 poweredge r630找不到linux安装的系统-CSDN博客文章浏览阅读628次,点赞10次,收藏10次。服务器需要2台以上,1台作为主节点,另1台作为⼯作节点。设置U盘启动后,会进入如下页面,选择第一个安装,按回车键开始安装系统,自动跳转到安装界面。启动服务器,会出现如图界面,然后按ctrl+R键,这个界面很快会闪过,尽量提前按。按F11进入Boot Manager,选择BIOS,进入U盘启动,选择USB并回车启动。_戴尔 poweredge r630找不到linux安装的系统https://blog.csdn.net/weixin_67440240/article/details/136655213

2、本地服务器Linux Centos7.9系统安装docker

2.1、检查Linux的内核版本

uname -a

2.2、卸载Docker旧版本(若有需要)

yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine

2.3、安装Docker

# 关闭防火墙
systemctl stop firewalld.service    
# 查看防火墙状态 
systemctl status firewalld          
# 关闭selinux
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
# 安装wget
yum install -y wget
# 安装阿里云镜像
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 查询可安装的Docker版本
yum list | grep docker
# 配置阿里云镜像源
cd /etc/yum.repos.d/
wget http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 安装Docker Ce社区版本
yum install -y docker-ce.x86_64
# 查看docker版本和详细信息
docker version
docker -v
docker info

2.4、安装Docker引擎

yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

2.5、 启动docker和设置开机⾃启动

# 开机自启动并启动docker服务
systemctl enable docker && systemctl start docker 
# 更新xfsprogs
yum -y update xfsprogs
# 重启系统                 
reboot
#检查是否开启自启动
systemctl status docker                

3、使用 Docker 安装 ThingsBoard PE

3.1、 拉取 ThingsBoard PE 镜像

docker pull thingsboard/tb-pe:3.6.3PE

3.2、获取许可证密钥

3.3、为 ThingsBoard 队列服务创建 docker compose 文件

vi docker-compose.yml
  • 将以下行添加到 docker-compose.yml 文件中。
  • 不要忘记将“PUT_YOUR_LICENSE_SECRET_HERE”替换为上一步获得的许可证密钥:
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
  mytbpe:
    restart: always
    image: "thingsboard/tb-pe:3.6.3PE"
    depends_on:
      - kafka
    ports:
      - "8080:8080"
      - "1883:1883"
      - "7070:7070"
      - "5683-5688:5683-5688/udp"
    environment:
      TB_QUEUE_TYPE: kafka
      SPRING_DATASOURCE_URL: jdbc:postgresql://postgres:5432/thingsboard
      TB_KAFKA_SERVERS: kafka:9092
      TB_LICENSE_SECRET: PUT_YOUR_LICENSE_SECRET_HERE
      TB_LICENSE_INSTANCE_DATA_FILE: /data/license.data
    volumes:
      - ~/.mytbpe-data:/data
      - ~/.mytbpe-logs:/var/log/thingsboard
  postgres:
    restart: always
    image: "postgres:15"
    ports:
    - "5432"
    environment:
      POSTGRES_DB: thingsboard
      POSTGRES_PASSWORD: postgres
    volumes:
      - ~/.mytbpe-data/db:/var/lib/postgresql/data

说明:

  • PUT_YOUR_LICENSE_SECRET_HERE- 在上一步中获取的许可证密钥的占位符。
  • 8080:8080- 将本地端口 8080 连接到公开的内部 HTTP 端口 8080。
  • 1883:1883- 将本地端口 1883 连接到公开的内部 MQTT 端口 1883。
  • 7070:7070- 将本地端口 7070 连接到公开的内部 Edge RPC 端口 7070。
  • 5683-5688:5683-5688/udp- 将本地 UDP 端口 5683-5688 连接到公开的内部 COAP 和 LwM2M 端口。
  • ~/.mytbpe-data:/data- 将主机的目录挂载到 ThingsBoard 数据目录;~/.mytbpe-data。
  • ~/.mytbpe-data/db:/var/lib/postgresql/data- 将主机的目录挂载到 Postgres 数据目录;~/.mytbpe-data/db。
  • ~/.mytbpe-logs:/var/log/thingsboard- 将主机的目录挂载到 ThingsBoard 日志目录;~/.mytbpe-logs。
  • mytbpe- 这台机器的友好本地名称。
  • restart: always- 在系统重新启动时自动启动 ThingsBoard,在发生故障时重新启动。;
  • thingsboard/tb-pe:3.6.3PE- docker 镜像。

3.4、运行安装

3.4.1、创建数据存储和日志的目录

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

3.4.2、启动 docker compose 进行安装

docker compose up -d
docker compose logs -f mytbpe
  • 执行此命令后,您可以http://{your-host-ip}:8080在浏览器中打开(例如http://localhost:8080)。您应该看到 ThingsBoard 登录页面。使用以下默认凭据:
  • 系统管理员[email protected] / sysadmin
  • 租户管理员[email protected] /租户
  • 客户用户[email protected] / customer

您可以随时在帐户资料页面中更改每个帐户的密码。

3.4.3、分离、停止和启动命令

  • 查看日志:
docker compose logs -f mytbpe
  • 停止容器:
docker compose stop mytbpe
  • 启动容器:
docker compose start mytbpe

如果您想从零实战企业级K8S本地部署ThingsBoard专业版集群,请参照:

https://blog.csdn.net/weixin_67440240/article/details/136656441icon-default.png?t=N7T8https://blog.csdn.net/weixin_67440240/article/details/136656441

标签:专业版,compose,Postgres,安装,企业级,docker,mytbpe,data,ThingsBoard
From: https://blog.csdn.net/weixin_67440240/article/details/137184579

相关文章

  • Postgresql同步数据到Elasticsearch
    Postgresql同步数据到es需要借助中间工具连接器,连接器部署主要有两种方式,一种是基于Elastic云托管的连接器(Nativeconnectors),另外一种自己安装管理的连接器(self-managedconnector). 托管方式连接器的使用方法文档:https://www.elastic.co/guide/en/enterprise-search/8.13/......
  • openGauss 企业级增强特性
    企业级增强特性数据分区数据分区是数据库产品普遍具备的功能。在openGauss中,数据分区是对数据按照用户指定的策略对数据做的水平分表,将表按照指定范围划分为多个数据互不重叠的部分(Partition)。openGauss支持:范围分区(RangePartitioning)功能,即根据表的一列或者多列,将要插入表......
  • postgresql自定义函数实现功能有两个数组arr1,arr2,返回第一个数组中不在第二个数组的
    CREATEORREPLACEFUNCTIONarray_difference(arr1text[],arr2text[])RETURNStext[]AS$$DECLAREresult_arrtext[];BEGIN--初始化结果数组为一个空数组result_arr:='{}';--遍历第一个数组中的每个元素FORiIN1..array_leng......
  • postgresql自定义函数实现三个数组存在相同数据,且在第四个数组中不存在的数据
    --使用postgresql语言写一个函数,实现以下功能:--1有管理权限用户数组、列表权限用户数组、查看权限用户数组、无权限用户数组四个用户数组--2当无权限用户数组存在用户数据时,如果管理权限用户数组,列表权限用户数组,查看权限用户数组中存在相同的用户数据,并且和无权限用户数......
  • 2024三掌柜赠书活动第十九期:DevOps企业级CI/CD实战
    目录目录前言关于CI/CD企业级CI/CD实战关于《DevOps企业级CI/CD实战》编辑推荐内容简介作者简介图书目录书中前言/序言《DevOps企业级CI/CD实战》全书速览结束语前言作为开发者,对于编程语言并不陌生,随着技术圈的不断进步和发展,越来越多的编程语言诞生和问世。......
  • java postgres单体库迁移postgres集群库java
    packagecom.slsl.digital.twin.manage.controller.project;importcom.google.common.collect.Lists;importcom.slsl.digital.twin.common.utils.CollectionUtils;importjava.sql.*;importjava.util.*;importjava.util.stream.Collectors;publicclassTest{......
  • 【数据库】postgresql截取最后一个字符之前的所有字符,如V1.0.0.20230731110947中取V1.
    在PostgreSQL中,我们可以使用position函数和split_part函数来截取最后一个.之前的所有字符。这两个函数都非常有用,尤其是在处理文本数据时。position函数position函数用于查找一个字符串中某个子串的位置。它的语法如下:POSITION(substringINstring)其中,substring是要查找的......
  • 【数据库】PostgreSQL中使用`SELECT DISTINCT`和`SUBSTRING`函数实现去重查询
    在PostgreSQL中,我们可以使用SELECTDISTINCT和SUBSTRING函数来实现对某个字段进行去重查询。本文将介绍如何使用这两个函数来实现对resource_version字段的去重查询。1.SELECTDISTINCT语句SELECTDISTINCT语句用于从表中选择不重复的记录。如果没有指定列名,则会选择所有列。在......
  • 【PG】postgresql中的bytea中的null 和 character varying 的null 是等值的吗
    在PostgreSQL中,NULL值是用于表示缺失或未知值的特殊值。无论数据类型是什么,NULL值都被视为一个独立的概念,与其他值不相等,包括bytea和charactervarying。因此,在PostgreSQL中,bytea类型的NULL值与charactervarying类型的NULL值是不相等的。它们被视为不同的值,无......
  • 【PG】hibernate postgresql character varying = bytea 错误
    如果你在使用Hibernate和PostgreSQL时遇到了"charactervarying=bytea"错误,那么可能是因为你在实体类中的属性映射或查询条件中将一个类型为"charactervarying"的属性与一个类型为"bytea"的列进行了混淆。要解决这个错误,你需要确保在Hibernate实体类的属性映射中......