告别手动配置!Rapid SCADA V6在Ubuntu 22.04上的保姆级安装与Nginx反向代理指南
Rapid SCADA V6在Ubuntu 22.04上的全自动部署与生产级优化指南
工业自动化系统的稳定运行离不开可靠的SCADA平台。作为一款开箱即用的开源SCADA解决方案,Rapid SCADA V6凭借其百万点数据采集能力和跨平台特性,正在成为工业物联网领域的新宠。本文将带您完成从零开始的生产环境部署,涵盖自动安装、Nginx反向代理配置、系统调优等关键环节,助您打造高性能的工业数据中枢。
1. 环境准备与依赖检查
在Ubuntu 22.04上部署Rapid SCADA V6前,需要确保系统满足以下基础要求:
- 操作系统:Ubuntu 22.04 LTS(推荐)或20.04 LTS
- 硬件配置:
- 最低配置:2核CPU/4GB内存/50GB存储(适用于测试环境)
- 生产建议:4核CPU/16GB内存/500GB SSD(支持10万数据点)
- 网络环境:稳定的TCP/IP网络,建议千兆以太网
1.1 安装.NET 6运行时
Rapid SCADA V6基于.NET 6构建,需先安装运行时环境:
# 添加微软包仓库 wget https://packages.microsoft.com/config/ubuntu/22.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb sudo dpkg -i packages-microsoft-prod.deb rm packages-microsoft-prod.deb # 安装.NET 6运行时 sudo apt-get update && \ sudo apt-get install -y aspnetcore-runtime-6.0验证安装是否成功:
dotnet --list-runtimes # 应显示类似输出:Microsoft.AspNetCore.App 6.0.x [/usr/share/dotnet/shared/Microsoft.AspNetCore.App]1.2 系统优化配置
为获得最佳性能,建议进行以下系统调优:
# 调整系统限制 echo "* soft nofile 65535" | sudo tee -a /etc/security/limits.conf echo "* hard nofile 65535" | sudo tee -a /etc/security/limits.conf # 优化内核参数 sudo tee -a /etc/sysctl.conf <<EOF net.core.somaxconn = 8192 net.ipv4.tcp_max_syn_backlog = 8192 vm.swappiness = 10 EOF sudo sysctl -p2. 一键式部署方案
Rapid SCADA官方提供了Debian格式的安装包,可实现全自动部署。
2.1 下载与安装
获取最新版安装包并执行安装:
wget https://rapidscada.org/download/rapidscada_6.0.0_all.deb sudo dpkg -i rapidscada_6.0.0_all.deb安装过程会自动完成以下操作:
- 创建/opt/scada目录结构
- 部署核心组件(Agent/Server/Comm/Web)
- 注册systemd服务
- 初始化配置文件
2.2 服务管理
安装完成后,系统会创建四个核心服务:
| 服务名称 | 功能描述 | 默认端口 |
|---|---|---|
| scadaagent6 | 配置管理服务 | 10000 |
| scadaserver6 | 数据处理服务 | 10001 |
| scadacomm6 | 通信驱动服务 | 10002 |
| scadaweb6 | Web应用服务 | 5000 |
启动所有服务并设置开机自启:
sudo systemctl enable --now scadaagent6 scadaserver6 scadacomm6 scadaweb6检查服务状态:
systemctl list-units --type=service | grep scada3. Nginx反向代理配置
为提升安全性和性能,建议使用Nginx作为前端代理。
3.1 安装Nginx
sudo apt install -y nginx sudo systemctl enable --now nginx3.2 配置反向代理
创建专用配置文件:
sudo tee /etc/nginx/conf.d/scada.conf <<'EOF' upstream scada_web { server 127.0.0.1:5000; keepalive 32; } server { listen 80; server_name scada.yourdomain.com; location / { proxy_pass http://scada_web; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection keep-alive; proxy_set_header Host $host; proxy_cache_bypass $http_upgrade; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } access_log /var/log/nginx/scada.access.log; error_log /var/log/nginx/scada.error.log; } EOF测试并重载配置:
sudo nginx -t && sudo systemctl reload nginx3.3 HTTPS加密(可选)
使用Let's Encrypt获取免费SSL证书:
sudo apt install -y certbot python3-certbot-nginx sudo certbot --nginx -d scada.yourdomain.com证书会自动续期,无需人工干预。
4. 生产环境调优指南
4.1 日志优化配置
默认日志存储在/var/log/scada目录,建议配置RAM磁盘提升性能:
# 创建临时日志目录 sudo mkdir -p /var/log/scada_temp # 修改fstab配置 echo "tmpfs /var/log/scada_temp tmpfs defaults,noatime,size=1G 0 0" | sudo tee -a /etc/fstab # 挂载并修改权限 sudo mount -a sudo chown -R scada:scada /var/log/scada_temp修改配置文件指向新位置:
sudo sed -i 's|/var/log/scada|/var/log/scada_temp|g' /etc/scada/*.json sudo systemctl restart scada*4.2 数据库性能优化
Rapid SCADA V6支持多种时序数据库,以下是PostgreSQL的优化建议:
-- 创建专用表空间 CREATE TABLESPACE scada_data LOCATION '/mnt/ssd/pgdata'; -- 创建用户和数据库 CREATE USER scada_admin WITH PASSWORD 'strongpassword'; CREATE DATABASE scada_db WITH OWNER scada_admin TABLESPACE scada_data; -- 重要参数调整(postgresql.conf) shared_buffers = 4GB effective_cache_size = 12GB maintenance_work_mem = 1GB random_page_cost = 1.14.3 通信驱动配置技巧
在/etc/scada/Comm/config.xml中可优化以下参数:
<DriverOptions> <MaxQueueSize>10000</MaxQueueSize> <!-- 增大通信队列 --> <DriverTimeout>30000</DriverTimeout> <!-- 超时时间调整为30秒 --> <MinPollingPeriod>100</MinPollingPeriod> <!-- 最小轮询间隔100ms --> </DriverOptions>重启服务使配置生效:
sudo systemctl restart scadacomm65. 监控与维护方案
5.1 系统健康检查
创建监控脚本/usr/local/bin/scada_monitor.sh:
#!/bin/bash # 检查服务状态 services=("scadaagent6" "scadaserver6" "scadacomm6" "scadaweb6") for svc in "${services[@]}"; do if ! systemctl is-active --quiet $svc; then echo "[CRITICAL] Service $svc is down!" | mail -s "SCADA Alert" admin@example.com systemctl restart $svc fi done # 检查磁盘空间 df -h | awk '$5 > 90 {print $6 " is " $5 " full!"}' | while read alert; do echo "[WARNING] $alert" | mail -s "SCADA Storage Alert" admin@example.com done设置定时任务:
(crontab -l 2>/dev/null; echo "*/5 * * * * /usr/local/bin/scada_monitor.sh") | crontab -5.2 备份策略
建议的备份目录结构:
/backups/scada/ ├── daily/ ├── weekly/ └── monthly/备份脚本示例:
#!/bin/bash BACKUP_DIR="/backups/scada/daily/$(date +%Y%m%d)" mkdir -p $BACKUP_DIR # 备份配置文件 tar czf $BACKUP_DIR/configs.tar.gz /etc/scada # 备份数据库 pg_dump -U scada_admin -Fc scada_db > $BACKUP_DIR/scada_db.dump # 保留最近7天备份 find /backups/scada/daily/ -type d -mtime +7 | xargs rm -rf6. 安全加固措施
6.1 防火墙配置
# 允许必要端口 sudo ufw allow 22/tcp sudo ufw allow 80/tcp sudo ufw allow 443/tcp sudo ufw allow 10000:10002/tcp # 启用防火墙 sudo ufw enable6.2 用户权限管理
修改默认管理员密码:
curl -X POST -H "Content-Type: application/json" -d '{ "username": "admin", "oldPassword": "scada", "newPassword": "NewSecurePassword123!" }' http://localhost/api/Auth/ChangePassword创建分级用户:
# 操作员账户(只读权限) curl -X POST -H "Content-Type: application/json" -d '{ "username": "operator1", "password": "OperatorPass123", "role": "operator", "email": "operator@example.com" }' http://localhost/api/User/Create -u admin:NewSecurePassword123!6.3 审计日志配置
在/opt/scada/Web/Config/appsettings.json中添加:
"Audit": { "Enabled": true, "MaxAgeDays": 90, "SensitiveDataMasking": true }