服务端部署

JOYZL SCADA JOYZL SCADA Server 非常容易部署,分发的程序包已包含运行环境所需的全部资源, 您只需要配备合适的操作系统和数据库即可快速投入运行。

服务端部署前的准备

  1. 服务端程序文件包;
  2. 已安装好的操作系统;
  3. 已安装好的数据库系统;
  4. 操作系统和数据库的账号;
  5. 组织机构的基本信息;
  6. 远程访问工具软件。

Linux环境部署推荐准备 WinSCPPuTTY 远程工具软件。

WinSCP 是一个 Windows 环境下使用的 SSH 的开源图形化 SFTP 客户端,同时支持 SCP 协议。 它的主要功能是在本地与远程计算机间安全地复制文件,并且可以直接编辑文件。

PuTTY 是一个 SSH 和 telnet 客户端,最初由 Simon Tatham 为 Windows 平台开发。 PuTTY 是开源软件,提供源代码,由一群志愿者开发和支持。

手动部署服务端

以下详细步骤以 Debian 12 和 MySQL 数据库为例,详细说明手动安装部署过程。

1. 获取程序文件包

官方网站下载 最新版本的程序包,通常是压缩包形式的文件。

通过Linux命令下载程序包到当前目录:

sudo wget http://joyzl.com/joyzl_server_v8.0.1_amd64.tar.gz
提示

如果您在Windows操作系统下载Linux程序包,请不要在Windows环境解压文件然后复制或传输到Linux系统, 虽然文件内容不会有任何变化,但是Linux文件的特有属性会丢失。 应将整个压缩包复制或传输到Linux系统再执行解压。

2. 程序安装

JOYZL SCADA JOYZL SCADA Server 推崇绿色安装,尽量避免将资源文件分散到系统各处(大人常对小朋友说:不要把你的东西弄得到处都是)。 因此我们只需要一个目录即可实现安装,推荐默认安装目录 /usr/local/joyzl-server。

通过Linux命令创建目录:

sudo mkdir -p /usr/local/joyzl-server

通过Linux命令解压程序包:

sudo tar -xzvf joyzl_server_v8.0.1_amd64.tar.gz -C /usr/local/joyzl-server

通过Linux命令启动程序:

sudo /usr/local/joyzl-server/server.sh start

由于当前还未配置数据库程序启动时将输出日志提示数据库连接失败。

通过Linux命令停止程序:

sudo /usr/local/joyzl-server/server.sh stop

3. 创建数据库

找到服务端对应的数据库创建初始化 SQL 脚本文件,通常位于程序目录下的 database 文件夹中, 例如:/usr/local/joyzl-server/database。 打开数据库管理工具,例如 MySQL Workbench,新建数据库 name-scada 其中"name"替换为您期望的名称,通常为组织缩写。 在新建的数据库中依次执行数据库脚本创建数据库,这将创建所需的数据库表以及辅助对象并初始化默认的组织和账户。

  1. people.sql
  2. device.sql
  3. energy.sql
  4. subseries.sql
  5. initialize.sql

修改服务端配置文件 /usr/local/joyzl-server/server.properties 更新数据库名称和访问账户。 注意:以下示例中的数据库地址"192.168.1.2"名称"name-scada"和账户"scada-user"密码"scada-pwd"应替换为您正确的信息, DB_MAX配置数据库可用的最大连接数,请根据实际情况修正参数值。

DB_URL=jdbc:mysql://192.168.1.2:3306/name-scada?characterEncoding=utf8&serverTimezone=GMT%2B8
DB_USER=scada-user
DB_PASSWORD=scada-pwd
DB_MAX=16
提示

不应在配置文件中配置并使用数据库的 root 账户,这将带来安全风险; 应使用专门配置的数据库账户以限制权限范围,这将在极端情况下减少数据损失。

3. 配置为系统服务

JOYZL SCADA JOYZL SCADA Server 通常部署为操作系统服务,程序将随操作系统启动而自动运行,操作系统停止而自动关闭。 与大多数Linux一样,通常采用 systemctl 管理系统服务, 以下步骤将在 systemctl 中注册程序为系统服务。

通过Linux命令复制 server.service 文件到服务管理目录中:

sudo cp /usr/local/joyzl-server/server.service /etc/systemd/system/joyzl-server.service

通过Linux命令要求 systemctl 重新加载服务以发现新添加的服务:

sudo systemctl daemon-reload

通过Linux命令启用服务:

sudo systemctl enable joyzl-server.service

通过Linux命令禁用服务:

sudo systemctl disable joyzl-server.service

通过Linux命令启动服务:

sudo systemctl start joyzl-server.service

通过Linux命令停止服务:

sudo systemctl stop joyzl-server.service

通过Linux命查看服务状态:

sudo systemctl status joyzl-server.service

通过Linux命令重启服务:

sudo systemctl restart joyzl-server.service

4. 配置防火墙

JOYZL SCADA JOYZL SCADA Server 默认使用 80 和 1230 端口执行服务,大部分Linux系统默认启用防火墙, 因此我们需要配置防火墙开放这两个端口以允许外部访问。 Debian 12 默认使用 nftables 防火墙软件;接下来的步骤您有三个可选项:

  1. 配置防火墙开放端口(推荐);
  2. 永久禁用防火墙(次选);
  3. 卸载防火墙软件(谨慎)。

4.1 配置防火墙开放端口是推荐的做法

nft add rule inet filter input tcp dport 80 accept
nft add rule inet filter input tcp dport 1230 accept

4.2 永久禁用防火墙是次选方案

sudo systemctl stop nftables
sudo systemctl disable nftables

4.3 卸载防火墙软件是不推荐方案

sudo apt remove nftables
危险

在Linux系统卸载防火墙时会随同卸载网络相关配置和组件, 这将导致网络配置和网络连接丢失, 您需要在没有网络连接的情况下重新配置网络才能恢复。

5. 配置项

JOYZL SCADA JOYZL SCADA Server 配置文件中的配置项大多数都具有合适的默认值,即便您不做任何调整也能正常运行(数据库配置除外)。 但我们还是强烈建议您检查这些参数,以确保获程序访问处于最佳运行状态。 配置文件 /usr/local/joyzl-server/server.properties 其中配置项如下所示。

THREAD=32
DEBUG=false

DB_URL=jdbc:mysql://192.168.1.2:3306/name-scada?characterEncoding=utf8&serverTimezone=GMT%2B8
DB_USER=scada-user
DB_PASSWORD=scada-pwd
DB_MAX=16
DB_RETENTION=30

ODBS_IP=
ODBS_PORT=1230

HTTP_IP=
HTTP_PORT=80
HTTP_CONTENT=content
HTTP_CACHE=cache

METER_TIME=01:30

LOG_LEVEL=3
LOG_EXPIRES=30

WATCH_DOG=0
基础

THREAD 运行时线程池最多线程数,不应低于8,建议CPU核心数乘以16。 这些线程将同时提供给网络(NIO),服务(Service),以及数据处理使用。

DEBUG 是否启用调试模式,调试模式将输出更多日志信息。 建议正式环境关闭调试信息输出。

数据库

DB_URL JDBC 数据库连接字符串。

DB_USER 数据库访问用户名。

DB_PASSWORD 数据库访问密码。

DB_MAX 数据库最大连接数。

DB_RETENTION 数据库保留时序数据的天数,超出有效天的时序数据将被自动删除。 联动和监控数据较多的时候会产生庞大的时序数据,自动清理将保持系统持续健康运行。

ODBS服务

ODBS_IP ODBS服务监听的网络IP地址,默认未指定表示监听所有网络; 如果要监听指定网络则设置为对应IP地址。

ODBS_PORT ODBS服务监听端口,默认为1230。

HTTP服务

HTTP_IP HTTP服务监听的网络IP地址,默认未指定表示监听所有网络; 如果要监听指定网络则设置为对应IP地址。

HTTP_PORT HTTP服务监听端口,默认为80。

HTTP_CONTENT HTTP服务主目录,默认为 content,表示工作目录下的 content 目录。

HTTP_CACHE HTTP服务缓存目录,默认为 cache,表示工作目录下的 cache 目录。

工作目录 为程序安装部署目录,例如:/usr/local/joyzl-server。

HTTP 服务可用于发布网页静态资源位于 HTTP_CONTENT 指定的目录中, 为防止静态资源与接口路径的冲突,接口优先级将高于静态资源命中。

表计

METER_TIME 能源相关表计每日记录当日能耗和处理自动账单的时间点。

日志

LOG_LEVEL 日志输出级别,ERROR=1,INFO=2,DEBUG=3。

LOG_EXPIRES 日志文件保留时间,默认30天,超出设定时间的日志文件将被自动删除以释放磁盘空间; 设置为0将禁用自动清理日志文件功能。

其它

WATCH_DOG 看门狗投喂间隔,默认0秒,将禁用看门狗功能; 要启用看门狗投喂应设定为大于0的指定间隔秒,并确保您的服务器开启并启用了看门狗模块。

伺服端部署

伺服端的安装与服务端类似,首先下载对应版本和操作系统的程序包。 然后将程序包解压到期望的目录,建议目录/usr/local/joyzl-servo; 之后配置为系统服务,调整配置参数后即可启动运行。

伺服端程序配置文件为servo.properties,其内容如下所示:

THREAD=32
DEBUG=false

HOST=zq.huatens.net:1230
KEY=fczzamxgjl
ID=3859474120966149

LOG_LEVEL=3
LOG_EXPIRES=30

WATCH_DOG=0

IMPORTANTS=\
SCANNER_TCP_MASTER.code,\
SCANNER_TCP_SLAVE.code,\
SCANNER_UDP_MASTER.code,\
SCANNER_UDP_SLAVE.code
校验

HOST 伺服端程序要连接的服务器地址和端口,格式为:IP/DOMAIN:PORT。

KEY 由服务端为伺服程序分配的密钥。

ID 由服务端为伺服程序分配的唯一标识。

关重属性

IMPORTANTS 配置全局关重属性(信号),这些属性将优先且尽可能确保传递给服务器;格式为:DRIVER.CODE。 通过通信配置客户端也可以配置属性优先级。

提示

关重属性和状态类属性均会尽量确保成功发送给服务器, 但在网络中断时间较长的极端情况下依然会导致数据丢失,通常是暂存已满不得不丢弃。

客户端部署

桌面客户端通常无须额外部署,下载对应的客户端解压即可运行; 为了便于维护和客户端分发,建议将对应的客户端置于服务器上,以便用户就近下载, 且免去用户更改服务端地址的麻烦。

桌面客户端配置文件为*.properties,其内容如下所示:

PORT=1230
HOST=www.joyzl.com

PORT 服务器ODBS服务端口,默认为1230。

HOST 服务器IP地址或域名

网页端部署

网页端的资源文件可直接部署于SCADA Server的HTTP_CONTENT配置项指定的文件夹中, SCADA Server本身已集成HTTP Server的功能。 将打包后的网页资源文件全部复制到服务器HTTP_CONTENT目录中,然后在浏览器输入服务器地址即可测试网页是否可浏览。 默认端口应为80,缺省文件名时将自动定位根目录中的index.html文件。

网页端通常要访问SCADA Server的HTTP JSON接口获取数据,当部署于SCADA Server中时应将其接口主机部分缺省。 假设服务端IP为 192.168.2.8 ,完整的接口请求URL为 HTTP://192.168.2.8/actions/login 那么部署于SCADA Server服务端时,由于网页地址和接口地址相同,应更改为同域请求 /actions/login。

提示

SCADA Server内置HTTP容器仅提供单主机简单的静态资源发布, 如果您的网页基于JSP、PHP等技术构建,内置HTTP容器将不能提供支持,您应当部署第三方的WEB服务器。