第2章 环境准备:硬件资源规划、操作系统要求、依赖软件安装

做DSPM部署验证,第一步不是敲命令,而是把环境摸清楚。我见过太多团队上来就装软件,结果跑测试时发现磁盘不够、内核参数没调、依赖版本冲突——然后回头补课,白白浪费几天时间。所以这一章,咱们先把底子打好。

2.1 硬件资源规划

先聊硬件。DSPM(数据安全态势管理)平台通常包含采集节点、分析引擎、存储后端和Web管理端。不同模块对资源的需求差异挺大,我列一张表,你照着配基本错不了。

组件 CPU(核心数) 内存(GB) 磁盘(GB) 备注
采集节点(轻量) 4 8 100(SSD) 每1000资产约+2核4G
分析引擎 16 64 500(NVMe) 用于实时规则匹配
存储后端(Elasticsearch) 8 32 2000(热) 热节点,冷节点另计
Web管理端 4 8 50 纯前端+API网关

我个人习惯:测试环境至少预留20%的余量。为什么?因为你不知道真实扫描流量会不会突然打满CPU。我在项目上吃过一次亏——采集节点CPU飙到95%,结果数据丢包,排查了半天才发现是核心数给少了。后来我就在规划阶段多给一两颗核,稳得多。

2.1.1 磁盘IO是关键

DSPM的采集节点需要频繁写日志、写事件。如果磁盘IO跟不上,整个管道会堵住。建议全用SSD,尤其是存储后端。机械盘在写索引时延迟会飙升,你想想看,一个查询慢了3秒,用户体验多糟糕。

⚠️ 注意: 如果你用虚拟机,一定要确认宿主机没有超分CPU和内存。我曾经遇到测试环境里虚拟机“抢”资源,导致DSPM采集节点间歇性失联——最后发现是宿主机超卖了2倍。老老实实分配独占资源吧。

2.2 操作系统要求

操作系统这块,我推荐Ubuntu 22.04 LTS或Rocky Linux 9。DSPM官方文档也主要在这两个发行版上验证过。CentOS 7当然也能跑,但内核太老,一些新特性(比如eBPF)不支持,就别自找麻烦了。

装系统时要注意几点:

  • 分区方案:/var 单独分区,至少留200GB,DSPM的日志和数据都写在这里。我之前有台机器没分区,/ 塞满后整个系统都挂了。
  • 系统内核:升级到最新稳定版。可以用 uname -r 检查。我习惯用 HWE 内核,对NVMe、网卡驱动更友好。
  • 关闭swap:大部分DSPM组件都建议关swap,避免内存页换入换出影响性能。不过如果你内存确实小,可以留1GB做兜底。
💡 小技巧: 装完系统后立刻执行 timedatectl set-timezone Asia/Shanghai,再装好NTP。时间不同步会导致证书校验失败、日志时间错乱——我踩过坑,真的。

2.3 依赖软件安装

依赖软件清单其实不长,但版本一定要对。我见过有人用Python 3.12跑旧版DSPM脚本,结果不兼容报错。下面是核心依赖表:

软件 推荐版本 用途
Python 3.10 / 3.11 DSPM脚本、数据采集
Docker 24.0+ 容器化运行分析引擎
Docker Compose v2.23+ 编排多容器
Elasticsearch 8.10+ 事件存储与检索
Kafka 3.5+ 事件消息队列
MySQL / PostgreSQL 8.0+ / 15+ 元数据存储
Redis 7.0+ 缓存、会话

2.3.1 安装步骤速览

我一般用脚本批量安装,但这里拆成步骤,方便你理解每一步在做什么。

  1. 更新系统包:apt update && apt upgrade -y(Ubuntu)或 dnf update -y(Rocky)。
  2. 安装基础工具:git, curl, wget, vim, net-tools, lsof。这些不是DSPM直接依赖,但调试时会用到。
  3. 安装Python:从源码编译或直接用 deadsnakes PPA。我倾向于用 pyenv 管理多版本——方便切换。
  4. 安装Docker:添加官方GPG key,用 apt install docker-ce docker-ce-cli containerd.io。记得把当前用户加入docker组,避免每次sudo。
  5. 下载DSPM部署包:从内部仓库拉取,或解压官方tar.gz。部署包里包含各个组件的docker-compose文件。
# 示例:一键安装Docker(Ubuntu)
sudo apt update
sudo apt install -y ca-certificates curl gnupg
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin
sudo systemctl enable docker
docker --version

2.4 部署拓扑概览

下面这张图把整体环境关系捋了一遍。我习惯先看架构再动手,不然装到一半容易乱。

DSPM 环境部署拓扑 采集节点 × N CPU 4c, Mem 8G Kafka 消息队列 3.5+ 集群 事件流 分析引擎 CPU 16c, Mem 64G 消费 Elasticsearch 8.10+ 热节点 写入 Web管理端 API + Dashboard 查询 MySQL / Redis 元数据 / 缓存 依赖 关键说明 所有组件建议部署在同一二层网络,延时低于1ms 采集节点与Kafka之间用内网千兆链路,避免公网丢包

图上标了关键节点和资源建议。嗯,你部署时可以根据实际资产规模横向扩展采集节点。Kafka用三节点集群比较稳,单节点在测试验证时也能跑,但别压太狠。

2.5 常见避坑

我个人踩过的几个大坑:

  • 内核参数没调:vm.max_map_count 必须设到262144,否则Elasticsearch起不来。我当时排错排了两小时,最后发现是默认值太低。
  • 防火墙没放通端口:DSPM内部组件间通信端口很多(Kafka 9092, ES 9200, Redis 6379...)。我建议先关防火墙测试,通了再按最小权限开放。
  • Python虚拟环境混用:用系统Python直接装依赖,结果和系统包冲突。后来我统一用 python3 -m venv 隔离,再没出过问题。

2.6 验证环境健康

装完所有依赖后,别急着跑部署脚本。先做一轮快速检查:

  • docker info 确认Docker运行正常。
  • python3 --version 确认是3.10+。
  • curl -I http://localhost:9200 如果ES起来,会返回200或401(需认证)。
  • 用 free -h 查看内存,df -h 确认分区剩余空间。

这些命令跑一遍没问题,就可以进入下一阶段的部署测试了。

💡 额外提醒: 记得把安装过程中用到的所有账号密码记录好,统一放到密码管理器里。我团队里有一个实习生,部署时记了临时密码,后来忘了,害得重新初始化——这事儿可别再发生了。

好了,环境准备就这些。硬件、操作系统、依赖软件,一样都不能凑合。你按照这个清单准备,后面跑测试时几乎不会遇到环境卡点。