Skip to content

系统环境搭建

ERP系统的稳定运行需要合理的环境配置,本文将介绍ERP系统的环境搭建方法,包括服务器硬件配置、操作系统选择、网络设置以及应用服务器配置等内容。

硬件需求

服务器配置建议

根据企业规模和用户数量,ERP系统的服务器配置建议如下:

企业规模CPU内存存储网络
小型(<50用户)4核心16GB500GB SSD千兆以太网
中型(50-200用户)8核心32GB1TB SSD RAID千兆以太网冗余
大型(>200用户)16核心+64GB+2TB+ SSD RAID万兆以太网冗余

客户端最低配置要求

组件最低要求推荐配置
CPU双核2.0GHz四核2.5GHz+
内存4GB8GB+
硬盘50GB可用空间100GB+ SSD
显示器1366x7681920x1080+
网络100Mbps1000Mbps
操作系统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为例:

  1. 基础安装

    • 下载Ubuntu Server安装镜像
    • 创建启动盘并安装系统
    • 安装过程中选择"最小服务器安装"
  2. 系统更新

    bash
    sudo apt update
    sudo apt upgrade -y
  3. 系统优化

    • 配置时区

      bash
      sudo timedatectl set-timezone Asia/Shanghai
    • 安装NTP服务保持时间同步

      bash
      sudo apt install -y ntp
      sudo systemctl enable ntp
      sudo systemctl start ntp
    • 优化内核参数

      bash
      sudo 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

      应用参数:

      bash
      sudo sysctl -p
  4. 安装基础工具

    bash
    sudo apt install -y vim curl wget htop net-tools unzip git

应用环境搭建

安装Docker环境(推荐方式)

使用Docker可以快速部署ERP系统及其依赖服务。

  1. 安装Docker

    bash
    curl -fsSL https://get.docker.com | sh
  2. 配置Docker权限

    bash
    sudo usermod -aG docker $(whoami)
  3. 安装Docker Compose

    bash
    sudo 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
  4. 验证安装

    bash
    docker --version
    docker-compose --version

传统部署方式

如果选择不使用Docker,需要手动安装以下组件:

  1. 安装Node.js

    bash
    curl -fsSL https://deb.nodesource.com/setup_16.x | sudo -E bash -
    sudo apt install -y nodejs
  2. 安装Redis

    bash
    sudo apt install -y redis-server
    sudo systemctl enable redis-server
  3. 安装NGINX

    bash
    sudo apt install -y nginx
    sudo systemctl enable nginx
  4. 安装Python依赖

    bash
    sudo apt install -y python3 python3-pip python3-dev
  5. 安装构建工具

    bash
    sudo apt install -y build-essential

网络设置

防火墙配置

安装和配置UFW防火墙:

bash
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 enable

SSL证书配置

使用Let's Encrypt免费SSL证书:

bash
sudo apt install -y certbot python3-certbot-nginx
sudo certbot --nginx -d erp.yourcompany.com

域名配置

  1. 在DNS服务商处添加相应域名记录
  2. 配置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;
    }
}

高可用部署(企业级)

对于企业级应用,推荐采用高可用架构:

  1. 负载均衡

    • 使用NGINX或HAProxy实现负载均衡
    • 配置多台应用服务器
  2. 数据库集群

    • 主从复制
    • 读写分离
  3. 文件存储

    • 使用NFS或对象存储
  4. 缓存服务

    • Redis集群
  5. 监控系统

    • Prometheus + Grafana
    • ELK日志分析

容器化部署示例(Docker Compose)

创建docker-compose.yml文件:

yaml
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

启动容器:

bash
docker-compose up -d

系统环境验证

性能测试

使用压力测试工具验证系统性能:

bash
sudo apt install -y apache2-utils
ab -n 1000 -c 50 https://erp.yourcompany.com/login

安全检查

  1. 运行基本安全检查:

    bash
    sudo apt install -y lynis
    sudo lynis audit system
  2. 扫描开放端口:

    bash
    sudo nmap -sS -sV localhost

系统备份与恢复

系统备份策略

  1. 定期快照

    • 对虚拟机或云服务器创建定期快照
    • 保留多个时间点的快照以便回滚
  2. 配置文件备份

    bash
    # 备份关键配置目录
    tar -czvf config_backup_$(date +%Y%m%d).tar.gz /etc/nginx /etc/redis /etc/systemd
  3. 应用数据备份

    bash
    # 备份应用数据目录
    tar -czvf app_data_backup_$(date +%Y%m%d).tar.gz /path/to/erp/data
  4. 异地备份

    bash
    # 将备份文件复制到远程服务器
    rsync -avz backup_files user@remote-server:/backup
    
    # 或上传到云存储
    aws s3 cp backup_files s3://your-backup-bucket/

系统恢复流程

  1. 从快照恢复

    • 在虚拟化平台或云服务提供商控制台中恢复到指定快照
  2. 从备份文件恢复

    bash
    # 恢复配置文件
    tar -xzvf config_backup_20230101.tar.gz -C /
    
    # 恢复应用数据
    tar -xzvf app_data_backup_20230101.tar.gz -C /
  3. 服务重启

    bash
    # 重启相关服务
    sudo systemctl restart nginx redis-server

系统监控与日志管理

系统监控工具

  1. 安装Prometheus + Grafana

    创建Prometheus配置文件/etc/prometheus/prometheus.yml

    yaml
    global:
      scrape_interval: 15s
    
    scrape_configs:
      - job_name: 'node'
        static_configs:
          - targets: ['localhost:9100']
      
      - job_name: 'nginx'
        static_configs:
          - targets: ['localhost:9113']

    创建Docker Compose配置:

    yaml
    version: '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
  2. 系统资源监控

    安装Node Exporter监控系统资源:

    bash
    wget 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

日志管理

  1. 集中式日志管理(ELK Stack)

    安装Filebeat收集日志:

    bash
    wget -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:

    yaml
    filebeat.inputs:
    - type: log
      enabled: true
      paths:
        - /var/log/nginx/*.log
        - /var/log/mysql/*.log
        - /path/to/erp/logs/*.log
    
    output.elasticsearch:
      hosts: ["elasticsearch:9200"]
  2. 日志轮转配置

    创建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
    }

系统扩展与升级

资源扩展

  1. 纵向扩展(Scale Up)

    • 增加服务器CPU和内存
    • 扩展磁盘空间
    bash
    # 检查当前磁盘使用情况
    df -h
    
    # 扩展逻辑卷示例
    sudo lvextend -L +10G /dev/vg_main/lv_erp
    sudo resize2fs /dev/vg_main/lv_erp
  2. 横向扩展(Scale Out)

    • 添加更多应用服务器到负载均衡池
    • 配置数据库读写分离和分片

系统升级

  1. 版本升级准备

    • 备份当前系统
    • 在测试环境验证升级过程
    • 制定回滚计划
  2. 升级步骤

    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
  3. 升级验证

    • 检查应用功能是否正常
    • 监控系统性能和稳定性
    • 准备回滚措施

常见问题

系统性能不佳怎么办?

  1. 检查服务器资源使用情况

    bash
    htop
  2. 检查磁盘I/O性能

    bash
    iostat -x 1
  3. 分析网络性能

    bash
    iftop -i eth0
  4. 优化措施

    • 调整应用服务进程数和线程池大小
    • 优化数据库查询和索引
    • 实施缓存策略
    • 使用CDN加速静态资源访问

如何处理系统安全漏洞?

  1. 及时更新系统

    bash
    sudo apt update && sudo apt upgrade -y
  2. 安装安全补丁

    bash
    sudo apt install unattended-upgrades
    sudo dpkg-reconfigure unattended-upgrades
  3. 定期安全扫描

    bash
    # 使用OpenVAS进行安全扫描
    sudo apt install openvas
    sudo gvm-setup
    sudo gvm-start
  4. 网络安全加固

    • 实施网络隔离和防火墙策略
    • 启用入侵检测系统(IDS)
    • 配置Web应用防火墙(WAF)

容器化环境故障排查

  1. 检查容器状态

    bash
    docker ps -a
  2. 查看容器日志

    bash
    docker logs erp-web
  3. 进入容器排查

    bash
    docker exec -it erp-web bash
  4. 容器网络排查

    bash
    docker network inspect bridge
  5. 重启故障容器

    bash
    docker-compose restart erp-web

结论

ERP系统环境搭建是一项复杂但关键的工作,直接影响系统的性能、可靠性和安全性。通过合理的规划和配置,可以构建一个稳定、高效且安全的ERP运行环境。

对于中小型企业,推荐使用Docker容器化部署方式,简化环境配置和维护。对于大型企业,建议采用高可用架构,确保系统的连续运行和数据安全。

无论采用何种部署方式,都应重视系统监控、备份策略和安全加固,建立完善的运维流程和应急响应机制,确保ERP系统在各种情况下都能稳定运行,为企业提供可靠的信息化支持。

基于VitePress构建的ERP知识库