系统环境搭建
ERP系统的稳定运行需要合理的环境配置,本文将介绍ERP系统的环境搭建方法,包括服务器硬件配置、操作系统选择、网络设置以及应用服务器配置等内容。
硬件需求
服务器配置建议
根据企业规模和用户数量,ERP系统的服务器配置建议如下:
| 企业规模 | CPU | 内存 | 存储 | 网络 |
|---|---|---|---|---|
| 小型(<50用户) | 4核心 | 16GB | 500GB SSD | 千兆以太网 |
| 中型(50-200用户) | 8核心 | 32GB | 1TB SSD RAID | 千兆以太网冗余 |
| 大型(>200用户) | 16核心+ | 64GB+ | 2TB+ SSD RAID | 万兆以太网冗余 |
客户端最低配置要求
| 组件 | 最低要求 | 推荐配置 |
|---|---|---|
| CPU | 双核2.0GHz | 四核2.5GHz+ |
| 内存 | 4GB | 8GB+ |
| 硬盘 | 50GB可用空间 | 100GB+ SSD |
| 显示器 | 1366x768 | 1920x1080+ |
| 网络 | 100Mbps | 1000Mbps |
| 操作系统 | Windows 10 / macOS 10.14 / Linux | 最新稳定版本 |
| 浏览器 | Chrome 80+ / Firefox 75+ / Edge 80+ | 最新稳定版本 |
服务器环境准备
操作系统选择
ERP系统支持以下操作系统:
Linux系统(推荐)
- Ubuntu Server 20.04 LTS或更高版本
- CentOS 8或更高版本
- Debian 10或更高版本
Windows系统
- Windows Server 2019或更高版本
推荐使用Linux系统部署ERP服务,具有更好的性能和安全性。
操作系统安装与优化
以Ubuntu Server为例:
基础安装
- 下载Ubuntu Server安装镜像
- 创建启动盘并安装系统
- 安装过程中选择"最小服务器安装"
系统更新
bashsudo apt update sudo apt upgrade -y系统优化
配置时区
bashsudo timedatectl set-timezone Asia/Shanghai安装NTP服务保持时间同步
bashsudo apt install -y ntp sudo systemctl enable ntp sudo systemctl start ntp优化内核参数
bashsudo nano /etc/sysctl.conf添加以下配置:
# 优化网络性能 net.ipv4.tcp_fin_timeout = 30 net.ipv4.tcp_keepalive_time = 1200 net.ipv4.tcp_max_syn_backlog = 8192 net.ipv4.tcp_tw_reuse = 1 # 优化内存使用 vm.swappiness = 10 vm.vfs_cache_pressure = 50应用参数:
bashsudo sysctl -p
安装基础工具
bashsudo apt install -y vim curl wget htop net-tools unzip git
应用环境搭建
安装Docker环境(推荐方式)
使用Docker可以快速部署ERP系统及其依赖服务。
安装Docker
bashcurl -fsSL https://get.docker.com | sh配置Docker权限
bashsudo usermod -aG docker $(whoami)安装Docker Compose
bashsudo curl -L "https://github.com/docker/compose/releases/download/v2.10.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose sudo chmod +x /usr/local/bin/docker-compose验证安装
bashdocker --version docker-compose --version
传统部署方式
如果选择不使用Docker,需要手动安装以下组件:
安装Node.js
bashcurl -fsSL https://deb.nodesource.com/setup_16.x | sudo -E bash - sudo apt install -y nodejs安装Redis
bashsudo apt install -y redis-server sudo systemctl enable redis-server安装NGINX
bashsudo apt install -y nginx sudo systemctl enable nginx安装Python依赖
bashsudo apt install -y python3 python3-pip python3-dev安装构建工具
bashsudo apt install -y build-essential
网络设置
防火墙配置
安装和配置UFW防火墙:
sudo apt install -y ufw
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow ssh
sudo ufw allow http
sudo ufw allow https
sudo ufw enableSSL证书配置
使用Let's Encrypt免费SSL证书:
sudo apt install -y certbot python3-certbot-nginx
sudo certbot --nginx -d erp.yourcompany.com域名配置
- 在DNS服务商处添加相应域名记录
- 配置NGINX反向代理
NGINX配置示例:
server {
listen 80;
server_name erp.yourcompany.com;
location / {
proxy_pass http://localhost:8000;
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;
}
}高可用部署(企业级)
对于企业级应用,推荐采用高可用架构:
负载均衡
- 使用NGINX或HAProxy实现负载均衡
- 配置多台应用服务器
数据库集群
- 主从复制
- 读写分离
文件存储
- 使用NFS或对象存储
缓存服务
- Redis集群
监控系统
- Prometheus + Grafana
- ELK日志分析
容器化部署示例(Docker Compose)
创建docker-compose.yml文件:
version: '3'
services:
nginx:
image: nginx:latest
ports:
- "80:80"
- "443:443"
volumes:
- ./nginx/conf:/etc/nginx/conf.d
- ./nginx/certs:/etc/nginx/certs
- ./nginx/html:/usr/share/nginx/html
depends_on:
- erp-web
restart: always
erp-web:
image: erpnext/erpnext:latest
environment:
- DB_HOST=mariadb
- REDIS_HOST=redis
volumes:
- ./erp-data:/home/frappe/frappe-bench/sites
depends_on:
- mariadb
- redis
restart: always
mariadb:
image: mariadb:10.6
environment:
- MYSQL_ROOT_PASSWORD=your_strong_password
- MYSQL_USER=erp_user
- MYSQL_PASSWORD=your_strong_password
- MYSQL_DATABASE=erp_db
volumes:
- ./mariadb-data:/var/lib/mysql
restart: always
redis:
image: redis:6.2
volumes:
- ./redis-data:/data
restart: always启动容器:
docker-compose up -d系统环境验证
性能测试
使用压力测试工具验证系统性能:
sudo apt install -y apache2-utils
ab -n 1000 -c 50 https://erp.yourcompany.com/login安全检查
运行基本安全检查:
bashsudo apt install -y lynis sudo lynis audit system扫描开放端口:
bashsudo nmap -sS -sV localhost
系统备份与恢复
系统备份策略
定期快照
- 对虚拟机或云服务器创建定期快照
- 保留多个时间点的快照以便回滚
配置文件备份
bash# 备份关键配置目录 tar -czvf config_backup_$(date +%Y%m%d).tar.gz /etc/nginx /etc/redis /etc/systemd应用数据备份
bash# 备份应用数据目录 tar -czvf app_data_backup_$(date +%Y%m%d).tar.gz /path/to/erp/data异地备份
bash# 将备份文件复制到远程服务器 rsync -avz backup_files user@remote-server:/backup # 或上传到云存储 aws s3 cp backup_files s3://your-backup-bucket/
系统恢复流程
从快照恢复
- 在虚拟化平台或云服务提供商控制台中恢复到指定快照
从备份文件恢复
bash# 恢复配置文件 tar -xzvf config_backup_20230101.tar.gz -C / # 恢复应用数据 tar -xzvf app_data_backup_20230101.tar.gz -C /服务重启
bash# 重启相关服务 sudo systemctl restart nginx redis-server
系统监控与日志管理
系统监控工具
安装Prometheus + Grafana
创建Prometheus配置文件
/etc/prometheus/prometheus.yml:yamlglobal: scrape_interval: 15s scrape_configs: - job_name: 'node' static_configs: - targets: ['localhost:9100'] - job_name: 'nginx' static_configs: - targets: ['localhost:9113']创建Docker Compose配置:
yamlversion: '3' services: prometheus: image: prom/prometheus volumes: - ./prometheus.yml:/etc/prometheus/prometheus.yml ports: - "9090:9090" restart: always grafana: image: grafana/grafana depends_on: - prometheus ports: - "3000:3000" environment: - GF_SECURITY_ADMIN_PASSWORD=secure_password restart: always系统资源监控
安装Node Exporter监控系统资源:
bashwget https://github.com/prometheus/node_exporter/releases/download/v1.3.1/node_exporter-1.3.1.linux-amd64.tar.gz tar -xvf node_exporter-1.3.1.linux-amd64.tar.gz sudo cp node_exporter-1.3.1.linux-amd64/node_exporter /usr/local/bin/ sudo useradd -rs /bin/false node_exporter sudo tee /etc/systemd/system/node_exporter.service > /dev/null <<EOF [Unit] Description=Node Exporter After=network.target [Service] User=node_exporter Group=node_exporter Type=simple ExecStart=/usr/local/bin/node_exporter [Install] WantedBy=multi-user.target EOF sudo systemctl daemon-reload sudo systemctl enable node_exporter sudo systemctl start node_exporter
日志管理
集中式日志管理(ELK Stack)
安装Filebeat收集日志:
bashwget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add - sudo apt-get install apt-transport-https echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee /etc/apt/sources.list.d/elastic-7.x.list sudo apt-get update sudo apt-get install filebeat配置Filebeat:
yamlfilebeat.inputs: - type: log enabled: true paths: - /var/log/nginx/*.log - /var/log/mysql/*.log - /path/to/erp/logs/*.log output.elasticsearch: hosts: ["elasticsearch:9200"]日志轮转配置
创建Logrotate配置:
/path/to/erp/logs/*.log { daily missingok rotate 14 compress delaycompress notifempty create 0640 www-data www-data sharedscripts postrotate [ -s /var/run/nginx.pid ] && kill -USR1 `cat /var/run/nginx.pid` endscript }
系统扩展与升级
资源扩展
纵向扩展(Scale Up)
- 增加服务器CPU和内存
- 扩展磁盘空间
bash# 检查当前磁盘使用情况 df -h # 扩展逻辑卷示例 sudo lvextend -L +10G /dev/vg_main/lv_erp sudo resize2fs /dev/vg_main/lv_erp横向扩展(Scale Out)
- 添加更多应用服务器到负载均衡池
- 配置数据库读写分离和分片
系统升级
版本升级准备
- 备份当前系统
- 在测试环境验证升级过程
- 制定回滚计划
升级步骤
bash# 停止应用服务 sudo systemctl stop erp-service # 备份应用文件 tar -czvf erp_backup_before_upgrade.tar.gz /path/to/erp # 更新应用代码 git -C /path/to/erp pull # 更新依赖 cd /path/to/erp npm install # 执行数据库迁移 ./migrate.sh # 重启服务 sudo systemctl start erp-service升级验证
- 检查应用功能是否正常
- 监控系统性能和稳定性
- 准备回滚措施
常见问题
系统性能不佳怎么办?
检查服务器资源使用情况
bashhtop检查磁盘I/O性能
bashiostat -x 1分析网络性能
bashiftop -i eth0优化措施:
- 调整应用服务进程数和线程池大小
- 优化数据库查询和索引
- 实施缓存策略
- 使用CDN加速静态资源访问
如何处理系统安全漏洞?
及时更新系统
bashsudo apt update && sudo apt upgrade -y安装安全补丁
bashsudo apt install unattended-upgrades sudo dpkg-reconfigure unattended-upgrades定期安全扫描
bash# 使用OpenVAS进行安全扫描 sudo apt install openvas sudo gvm-setup sudo gvm-start网络安全加固
- 实施网络隔离和防火墙策略
- 启用入侵检测系统(IDS)
- 配置Web应用防火墙(WAF)
容器化环境故障排查
检查容器状态
bashdocker ps -a查看容器日志
bashdocker logs erp-web进入容器排查
bashdocker exec -it erp-web bash容器网络排查
bashdocker network inspect bridge重启故障容器
bashdocker-compose restart erp-web
结论
ERP系统环境搭建是一项复杂但关键的工作,直接影响系统的性能、可靠性和安全性。通过合理的规划和配置,可以构建一个稳定、高效且安全的ERP运行环境。
对于中小型企业,推荐使用Docker容器化部署方式,简化环境配置和维护。对于大型企业,建议采用高可用架构,确保系统的连续运行和数据安全。
无论采用何种部署方式,都应重视系统监控、备份策略和安全加固,建立完善的运维流程和应急响应机制,确保ERP系统在各种情况下都能稳定运行,为企业提供可靠的信息化支持。
