windows部署V2_物联网平台

‼️注意

生成环境不推荐使用windows系统部署,接入数据量较少,推荐使用linux系统部署!

此处为语雀内容卡片,点击链接查看:https://yunteng.yuque.com/avshoi/v2xdocs/nr3n8nzk56sk4nmi

更新指导:

此处为语雀内容卡片,点击链接查看:https://yunteng.yuque.com/avshoi/v2xdocs/eam1fg0719uflzqm

1、基础环境准备

1-1、安装java

💡 提示

JDK版本不能低于17.0.15。安装文件请自行下载。

参考安装jdk文档:

此处为语雀内容卡片,点击链接查看:https://yunteng.yuque.com/avshoi/sqbbzn/fug1pf0d99yg3985

1-2、安装Postgresql

💡 提示

postgresql数据库版本建议16。部署包内默认postgres登录密码为thingskit。安装文件请自行下载。

postgresql官网下载地址:

参考安装文档:

此处为语雀内容卡片,点击链接查看:https://yunteng.yuque.com/avshoi/sqbbzn/gyuuq9bhbfqv63x4

补充:

💡提示

pg数据库安装不会自带timescaleDB插件,这个需要手动安装。

postgresql16数据库timescaleDB插件:

💡提示

将数据库timescaleDB插件压缩包解压后。

将timescaleDB中sql和control文件放入数据库安装目录shareextension。

将timescaleDB中dll文件放入数据库安装目录lib。

💡提示

需要修改数据库配置项,将数据库配置文件postgresql.conf添加配置项shared_preload_libraries = ‘timescaledb’。

postgresql.conf路径为数据库安装目录data下。修改后重启数据库服务。

💡提示

重启数据库成功后,还需要使用navicat等工具主动创建需要使用的数据库timescaleDB模式。外部访问数据库还需要修改pg_hba.conf。

host    all				all				0.0.0.0/0				scram-sha-256			#允许外部通过密码访问数据库

CREATE EXTENSION IF NOT EXISTS timescaledb CASCADE;

1-3、安装golang

💡提示

安装文件请自行下载。源码部署可以不安装golang。推荐版本1.18.1。

此处为语雀内容卡片,点击链接查看:https://yunteng.yuque.com/to2an3/sqbbzn/lypkxtb9zxch61z5

1-4、安装Nginx

💡 提示

推荐安装nginx版本为1.24。安装文件请自行下载。

参考安装文档:

此处为语雀内容卡片,点击链接查看:https://yunteng.yuque.com/avshoi/sqbbzn/kggg3p59uwd01pk0

2、准备部署包

‼️ 特别注意

将收到的部署包解压,其中zip文件后缀的压缩包都为前端文件,需要放置在nginx部署的目录下。并将web_server目录放在磁盘分区根目录。(默认为D盘)如果放在其他路径下,请修改window.bat脚本内对应配置。

💡 注意

也可以将部署包内文件放在其他目录下,但需要根据放置路径修改window.bat以及nginx.conf的路径。

3、配置脚本文件window.bat

3-1、数据库配置

💡 注意

windows系统上部署,需要手动创建数据库,数据库默认名称为thingskit,可以设置为其他名称,但同时需要更改window.bat内数据库名称。

‼️ 注意

window.bat脚本内数据库的连接账号和密码都是默认的,其中账号为postgres,密码为thingskit,如果安装的数据库服务不一致,则需要修改对应信息。

💡 提示

数据库创建好之后,双击脚本文件window.bat运行,即可初始化数据库。

3-2、证书配置

💡 提示

需要向平台相关人员提供部署服务器的MAC地址,以生成对应的license证书。可以按照以下步骤确定使用的网卡以及MAC地址。

ipconfig				    #在cmd中输入打印网卡信息
getmac /v /fo list	#在cmd中输入打印mac地址

💡 提示

由平台发放证书后,将lic格式文件存放至_cert目录下。

4、启动物联网平台服务

💡 注意

启动服务时会首先执行初始化数据库的动作,然后再运行平台服务。

💡 提示

首次部署或升级部署时,需要先删除可执行文件xjar,对应的部署包thingsKit.xjar和xjar.go必须一对一匹配。

💡 提示

双击window.bat启动服务。双击后会弹出一个cmd窗口,请在平台使用过程中保持窗口运行,需要关闭平台时可以关闭这个cmd窗口。

5、启动nginx服务

5-1、更新Nginx配置文件

💡 提示

将前端文件data_view.zip、scada.zip、web_ui.zip放在nginx部署目录下,然后将nginx.conf修改为以下内容。data_view.zip,scada.zip需要购买额外扩展模块才会提供。

部署路径为此方式即可:


#user  nobody;
worker_processes  1;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;


events {
    worker_connections  1024;
}
#http{


http {
    include       mime.types;
    default_type  application/octet-stream;

    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    #                  '$status $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';

    #access_log  logs/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    #gzip  on;

    server {
        listen       9527;
        server_name  localhost;
        charset utf-8;
        #access_log  logs/host.access.log  main;

        location / {
            root   web_ui;
            index  index.html index.htm;
            try_files $uri $uri/ /index.html;
        }
		location /thingskit-scada {
            alias   scada;
            index  index.html index.htm;
            try_files $uri $uri/ /index.html;                 
        }
        location /large-designer {
            alias   data_view;
            index  index.html index.htm;
            try_files $uri $uri/ /index.html;
           # add_header Cache-Control "no cache,no store";
        }
        location /red/ {
                        proxy_pass  http://localhost:1880/;
                        proxy_set_header Host $host;
                        proxy_set_header X-Real-IP $remote_addr;
                        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                        proxy_set_header X-Forwarded-Proto $scheme;
        }		
		
	    location /api/ {
	        proxy_set_header Host $http_host;
            proxy_set_header X-Forward-For $remote_addr;
            proxy_pass  http://localhost:8080/api/;
            proxy_ssl_server_name on;
        
	    }
        location /api/ws {
           proxy_pass  http://localhost:8080;
           proxy_connect_timeout  5s;
           proxy_read_timeout  300s;
           proxy_send_timeout  300s;
           proxy_redirect off;
           #下面三行是重点
           proxy_http_version      1.1;
           proxy_set_header Upgrade $http_upgrade;
           proxy_set_header Connection "upgrade";
	       #编辑传递给代理服务器的请求头  
           proxy_set_header Host $http_host;                            #原始请求的主机名
           proxy_set_header X-Real-IP        $remote_addr;              #调用当前代理的上级客户端的IP地址
           proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; #显示代理树的全部客户端IP地址
	       proxy_set_header X-Forwarded-Proto $scheme;                  #原始请求的协议
	       proxy_set_header X-Forwarded-host $server_name;              #原始请求的Host值
	       proxy_set_header X-Forwarded-Port $server_port;              #原始请求的端口
        }
  }
}

5-2、启动服务

💡 提示

首先进入cmd,切换到nginx安装的路径下,执行以下命令。也可以直接双击nginx.exe。

start nginx

6、测试ThingsKit物联网平台是否安装成功

💡注意

设备分布等功能调用地区需要获取高德地图api接口配置。windows部署与linux部署前端文件的目录会有些不一样,需要重新配置的目录为nginx目录下的web_ui_app.config.js。且需要手动重启nginx服务。

操作流程:

此处为语雀内容卡片,点击链接查看:https://yunteng.yuque.com/avshoi/v2xdocs/gho03tgxganir968#QDsmZ

物联网平台、管理页面都成功部署后。我们就可以开始使用系统了。

💡 提示

访问地址:http://平台部署服务器IP或域名:9527

超级管理员账号:sysadmin

超级管理员密码:Sysadmin@123

租户管理员/客户默认密码:123456

‼️ 注意

设备的接入需要再超级管理员的账号登录后,创建租户-租户管理员并访问租户账号才能使用。

平台是否安装成功验收清单

  1. 默认账号是否能成功登录。
  2. 默认账号是否可以在菜单租户角色中新建租户角色。
  3. 默认账号是否可以在菜单租户列表中新建租户。
  4. 默认账号是否可以为租户租户管理员。
  5. 租户管理员是否可以在菜单平台定制中上传LOGO图片。
  6. 租户管理员是否可以在菜单账号管理中新建客户。
  7. 租户管理员是否可以在菜单组织管理中新建组织。
  8. 租户管理员是否可以在菜单设备管理>产品中创建产品。
  9. 租户管理员是否可以在菜单设备管理>产品>详情>物模型管理中编辑和发布物模型。
  10. 租户管理员是否可以在菜单设备管理>设备列表中新建设备。
  11. 设备连接平台后设备管理>设备列表中对应设备的状态是否为在线。
  12. 设备推送遥测数据后设备管理>设备列表>详情中的物模型数据是否可以看到最新的遥测数据。

扩展:启动nodered支持平台嵌入使用

‼️ 特别注意

该模块属于增值功能,不包含在基础功能内,部署文件需要额外获取。

安装环境

💡 提示

首先需要下载并解压Nodejs安装文件,双击msi文件进行安装。

可使用本文档提供的安装文件以及对应版本:

💡 提示

如何验证是否安装Nodejs成功?

能够正常在cmd中打印版本即可:

获取部署脚本

💡 提示

nodered的部署脚本请咨询相关人员获取。1.5.2版本以及后续版本自带无需重复获取。

部署方式

‼️ 注意

本文档部署方式默认文件存放目录为D:web_servernr,如果修改文件或调整了端口、数据库名称登录方式等请咨询相关人员修改配置。

💡 提示

启动前需要修改配置文件。

修改文件D:web_servernr.env:

启动服务

💡 提示

双击nodered.bat启动服务。

扩展:启动GBT28181协议的支撑软件ZLMediaKit

‼️特别注意

该模块属于增值功能,不包含在基础功能内,部署文件需要额外获取。

‼️特别注意

视频接入功能GBT28181默认是关闭的。启用该功能需要将启动脚本window.bat中【GBT28181_ENABLED】的值改为【true】。

获取流媒体服务文件

💡提示

需要从相关人员处获取流媒体部署文件,并解压到web_server目录。

启动流媒体服务

💡提示

首先执行VC_redist.x64_3.exe按照刘流媒体依赖,然后进入zlm目录后,双击MediaServer.exe启用流媒体服务,会打开一个cmd窗口,流媒体运行中请勿关闭此cmd窗口。

修改配置

💡提示

需要按照当前部署环境自行修改配置项。

重启平台后台

💡提示

前置步骤完成后,需要关闭平台启动的cmd窗口后,双击window.bat重新启动平台。

平台cmd窗口:

扩展:源码打包windows部署调整

💡提示:

需要修改window.bat启动脚本的内容。

@ECHO OFF
chcp 65001
setlocal ENABLEEXTENSIONS



rem 配置环境变量
set EDGES_ENABLED=true
set TB_SERVICE_TYPE=monolith
set SPRING_DATASOURCE_URL=jdbc:postgresql://localhost:5432/thingskit
set SPRING_DATASOURCE_USERNAME=postgres
set SPRING_DATASOURCE_PASSWORD=thingskit

set ZOOKEEPER_ENABLED=false
set CACHE_TYPE=caffeine
set TB_QUEUE_TYPE=in-memory
rem cassandra, sql, or timescale (for hybrid mode, DATABASE_TS_TYPE value should be cassandra, or timescale)
set DATABASE_TS_TYPE=sql
set DATABASE_TS_LATEST_TYPE=sql

set MINIO_URL=http://localhost:9000
set MINIO_NAME=minioadmin
set MINIO_PWD=minioadmin
set FILE_STORAGE_TYPE=local

set LICENSE_SUBJECT=yunteng
set LICENSE_PATH=D:web_server_cert
set LICENSE_STORE_PASS=Sys@admin1234

set GBT28181_ENABLED=false


rem 初始化数据库:开始
cd data/sql
go build xjar.go
rem xjar java  -Dinstall.data_dir=D:web_serverdata -Dlogging.config=D:web_server_logback.xml --add-opens java.base/jdk.internal.loader=ALL-UNNAMED -jar initDb.xjar
java -Dfile.encoding=UTF-8 --add-opens java.base/jdk.internal.loader=ALL-UNNAMED  --add-opens java.base/java.lang=ALL-UNNAMED --add-opens java.base/java.net=ALL-UNNAMED  -Dinstall.data_dir=D:web_serverdata -jar ./initDb.jar
rem 初始化数据库:结束

rem 启动物联网平台服务端:开始
cd ../..
go build xjar.go
rem xjar java -Dinstall.data_dir=D:web_serverdata  -Dlogging.config=D:web_server_logback.xml --add-opens java.base/jdk.internal.loader=ALL-UNNAMED -jar thingsKit.xjar
java -Dapp.name=thingskit --add-opens java.base/jdk.internal.loader=ALL-UNNAMED  --add-opens java.base/java.lang=ALL-UNNAMED --add-opens java.base/java.net=ALL-UNNAMED -Dinstall.data_dir=D:web_serverdata   -Dlogging.config=D:web_server_logback.xml -jar ./thingsKit.jar
rem 启动物联网平台服务端:结束

pause
云腾五洲-AI助理