部署手册
一、准备工作
1、操作系统
部署的服务器必须是以下的系统,旧版操作系统可能导致服务无法正常启动。
- Windows Server 2019
- Windows Server 2016
- CentOS 7.9
- Debian 11.6
- 银河麒麟 V10
2、服务器端口
服务器需要开放下列端口,保证用户可以正常访问网站,以及设备可以收发数据。
类型 | 端口 | 说明 |
---|---|---|
网站服务 | 8890,20072(Websocket) | 浏览器访问EIOT网站的端口 |
中台服务 | 20001 | 设备免调试自动注册端口 |
MQTT服务 | 20071,20073(SSL加密) | 设备接入平台的默认端口 |
数据可视化服务 | 20003 | 浏览器访问数据可视化平台的端口 |
调试网站 | 20004 | 可选,运营EIOT云服务的运营商客户需要开通 |
MQTT管理网站 | 15672 | 运维,Windows服务器如提供远程桌面,可不开放 |
远程端口 | 3389(Windows),22(Linux) | 运维,Windows可以用向日葵、Todesk等代替 |
另外由于部分设备采用的并非中台标准协议,所以需要根据项目方案额外开放一些端口。
型号 | 端口 |
---|---|
预付费安全用电协议(GSM500/4G表) | 20024 |
单灯控制器(贴牌) | 20027 |
ANet运维协议 | 20028 |
ANet建筑能耗协议 | 20029 |
安全用电协议 | 20030 |
路灯集中器 | 20031 |
铭控水表 | 20032 |
火灾报警主机 | 20033 |
科德水表 | 20034 |
电气火灾主机 | 20035 |
油烟 | 20036 |
海外MQTT协议 | 30001 |
二、Window部署
1、文件介绍和替换
1、解压文件
以管理员的身份登录,必须将解压的文件夹放在D盘的根目录下,路径如下图。 不然会产生错误。
2、文件结构介绍
部署包文件说明如下表格所示。
文件夹 | 说明 |
---|---|
bin | 注册,删除,修改服务的脚本 |
conf | 服务配置文件 |
data | 数据库 |
Image | eiot需要的模板文件 |
system | Dll文件 |
tool | 连接服务工具 |
web | 前端 |
Server | 后端 |
3、判断服务器环境
不同的环境,启动后台EIOT 和 Exchange 的配置文件会不同。对应关系如表格所示。
服务器环境 | 配置文件 |
---|---|
海外服务器 | oversea |
EMS服务器 (EMS 部署好之后,部署EIOT |
ems-win |
最小化部署(例如移动云) | min-win |
买断平台,默认 | prod-win |
4、替换前端和后端文件
很多时候,部署包需要替换最新的前端和后端,操作如下。
前端文件替换,前端替换的目录在 D:\acrel-iot\web。有两个文件夹,eiot_web 存放eiot的前端, exchange_web 存放exchange前端
后端文件替换,后端替换的目录在 D:\acrel-iot\server 下,config 文件夹内放的是运行的配置文件
2、启动部署脚本
1、脚本介绍
D:\acrel-iot\bin 目录下有一系列的脚本,功能如下。
脚本文件 | 说明 |
---|---|
默认部署.bat | 单个服务器,注册并启动所有服务 |
EMS部署.bat | EMS服务器, 注册并启动特定的服务 |
分开部署-数据库.bat | 分开部署中,注册并启动数据库服务 |
分开部署-应用端.bat | 分开部署中,注册并启动应用端 |
清空服务.bat | 删除所有服务,并清空Rabbitmq的注册表 |
Mysql定时备份.bat | Mysql 定时备份脚本 |
2、启动脚本
请参考表格。
服务器环境 | 配置文件 | 启动脚本(有先后顺序) |
---|---|---|
EMS服务器 (EMS 部署好之后,部署EIOT) | ems-win | 1、EMS部署.bat |
最小化部署(例如移动云) | min-win | 1、RabbitMq_Init.bat 2、Exchange_Init.bat |
买断平台,默认 | prod-win | 1、默认部署.bat |
数据应用分开部署 | prod-win | 1、分开部署-数据库.bat数据库服务器 2、分开部署-应用端.bat前端后端服务器 |
3、部署确认
1、服务检查,Win + R 输入 taskmgr 打开任务管理器, 就可以看到IOT开头的服务的运行情况,不是Running 说明有问题。
2、网站检查,打开网站localhost:8890,确认可以登录。
3、网关上线确认,在网站的网关状态上通讯状态和仪表状态上查看最后采集时间。
4、工具
在 D:\acrel-iot\tools 目录下放着一些连接工具,方便检查调试。
- MQTT BOX 是连RabbitMq的设备
- Navicat 用来连接Mysql 和 MongoDB
- lRedis Desktop Manager 连接Redis
- DirectX 修复系统文件
- TCP&UDP测试工具
- Chrom浏览器
三、Linux部署
1、文件介绍和替换
1、解压文件
用tar -xvf acrel-iot-linux(V1.7.0).tar.gz -C /home 将部署包解压到 /home 目录下。路径如下图:
2、文件结构介绍
部署包文件说明如下表格所示。
文件夹 | 说明 |
---|---|
docker | 容器配置 |
config | 配置文件(Nginx,Rabbitmq) |
server | 后端 |
web | 前端 |
data | 数据库 |
service | 服务 |
images | 模板 |
分开部署-数据库.sh | 分开部署的数据端安装脚本 |
分开部署-应用端.sh | 分开部署的应用端安装脚本 |
集群部署-主.sh | 集群的主服务器安装脚本 |
集群部署-从.sh | 集群的从服务器安装脚本 |
默认部署.sh | 单机部署的安装脚本 |
2、启动部署脚本
1、单机部署(默认)
运行命令 sh /home/acrel-iot-linux/默认部署.sh
2、数据应用分开部署
数据服务器上,运行命令sh /home/acrel-iot-linux/分开部署-数据库.sh
应用服务器上,运行命令sh /home/acrel-iot-linux/分开部署-应用端.sh
3、集群部署
主节点服务器上,运行命令 sh /home/acrel-iot-linux/默认部署.sh
从节点服务器上,分如下几步:
1、将Docker目录下的docker-compose-rep.yml中124.71.138.23替换为主服务器IP地址
2、运行命令 sh /home/acrel-iot-linux/集群部署-从.sh
3、运行命令 docker exec -it iot-mongo bash 进入容器
4、运行命令 mongo -u acrel -p 1a2c3r4e5l6 进行登录
5、运行以下命令,加入到集群:
rs.initiate({
_id: "rs",
version: 1,
members: [
{ _id: 0, host : "主服务器IP:20051" ,priority:2 },
{ _id: 1, host : "从服务器IP:20051",priority:1 }
]
})
6、运行命令exit退出
3、部署确认
1、服务是否运行正常
输入 docker ps 显示如下图,如果status 列中有服务一直在重启,说明有异常
2、登录网站,可以成功登录。
3、网关上线确认,在网站的网关状态上通讯状态和仪表状态上查看最后采集时间。
4、服务重启
1、关闭
docker stop iot-mysql
docker stop iot-mongo
docker stop iot-rabbitmq
docker stop iot-redis
docker stop iot-nginx
docker stop iot-exchange
docker stop iot-eiot
2、开启
docker start iot-mysql
docker start iot-mongo
docker start iot-rabbitmq
docker start iot-redis
docker start iot-nginx
docker start iot-exchange
docker start iot-eiot
四、常见问题处理
请点此链接跳转