4. 环境准备:Linux服务器初始化、Python3环境、Docker与Docker-Compose安装

好,咱们正式开始动手了。

这一章,说白了就是给监控系统搭个窝。你想想看,一个网络监控系统要跑得稳,底层环境必须扎实。我这些年踩过的坑,十有八九都是环境没配好导致的。所以这一节,咱们把Linux服务器初始化、Python3环境、Docker和Docker-Compose一次性搞定。

核心逻辑:先有干净的系统 → 再装Python3做脚本支撑 → 最后用Docker跑服务。一层叠一层,缺一不可。

环境准备知识体系 ① Linux初始化 系统更新 · 用户创建 SSH加固 · 时区设置 ② Python3环境 版本管理 · pip配置 虚拟环境 · 依赖安装 ③ Docker生态 Docker Engine Docker-Compose ↓ 最终目标:一个可运行监控容器的稳定服务器 监控系统运行底座

4.1 Linux服务器初始化

我个人习惯,拿到一台新服务器,第一件事不是装软件,而是先做安全加固。为什么呢?因为网络监控系统本身就会暴露端口,如果底层有漏洞,那就是引狼入室。

4.1.1 系统更新与基础工具

我用的是Ubuntu 22.04 LTS,当然CentOS 7/8也行。但说实话,我建议你用Ubuntu,因为Docker对它的支持最友好。

# 更新系统包
sudo apt update && sudo apt upgrade -y

# 安装基础工具
sudo apt install -y curl wget vim git net-tools htop

小技巧:我每次装完系统,都会顺手装个htop。监控系统跑起来后,一眼就能看到CPU和内存占用,排查问题特别方便。

4.1.2 创建专用用户

千万别用root直接操作。我曾经见过一个项目,所有服务都用root跑,结果一个脚本写错了,直接把系统库给删了……嗯,那场面,惨不忍睹。

# 创建监控专用用户
sudo useradd -m -s /bin/bash monitor
sudo passwd monitor

# 赋予sudo权限(按需)
sudo usermod -aG sudo monitor

4.1.3 SSH安全配置

远程管理服务器,SSH是命门。我建议你至少做两件事:改端口、禁用密码登录。

# 编辑SSH配置文件
sudo vim /etc/ssh/sshd_config

# 修改以下参数
Port 2222                    # 默认22改成别的
PermitRootLogin no           # 禁止root登录
PasswordAuthentication no    # 禁用密码,只用密钥
PubkeyAuthentication yes     # 开启密钥认证

# 重启SSH服务
sudo systemctl restart sshd

注意:改SSH配置前,一定要先确保你的密钥已经添加到了~/.ssh/authorized_keys里。不然一重启,你自己都登不进去了。我当年就干过这种蠢事,大半夜跑机房拿显示器……

4.1.4 时区与时间同步

监控系统的时间必须准确。告警时间差几分钟,排查起来能让你怀疑人生。

# 设置时区为上海
sudo timedatectl set-timezone Asia/Shanghai

# 安装NTP服务
sudo apt install -y chrony
sudo systemctl enable chrony
sudo systemctl start chrony

# 验证时间同步
timedatectl status

4.2 Python3环境搭建

Python是监控脚本的主力语言。我为什么不用Shell?因为Python处理数据、发告警、写日志都更顺手。说白了,Shell适合简单任务,复杂逻辑还是Python靠谱。

4.2.1 安装Python3与pip

Ubuntu 22.04自带Python3.10,但有时候版本不够新。我个人习惯用deadsnakes源来装最新版。

# 查看当前Python版本
python3 --version

# 安装Python3和pip
sudo apt install -y python3 python3-pip python3-venv

# 升级pip到最新
sudo pip3 install --upgrade pip

4.2.2 配置虚拟环境

这一点非常重要。每个项目用独立的虚拟环境,依赖包互不干扰。我见过太多人把所有包装到系统级,最后版本冲突,项目跑不起来。

# 创建项目目录
mkdir -p ~/network_monitor
cd ~/network_monitor

# 创建虚拟环境
python3 -m venv venv

# 激活虚拟环境
source venv/bin/activate

# 验证
pip list  # 应该只有基础包

我的习惯:每次进项目目录,第一件事就是source venv/bin/activate。你可以把这条命令加到.bashrc里,自动激活。

4.2.3 安装常用Python库

网络监控常用的库,我列个清单。这些后面都会用到。

# 激活虚拟环境后执行
pip install requests          # HTTP请求
pip install psutil            # 系统资源监控
pip install paramiko          # SSH连接设备
pip install pysnmp            # SNMP协议
pip install flask             # 简单Web展示
pip install schedule          # 定时任务
库名 用途 我的评价
requests 调用API、发告警 必装,没有它我写不了脚本
psutil 采集CPU/内存/磁盘 轻量好用,监控服务器必备
paramiko SSH登录网络设备 替代Telnet,安全第一
pysnmp SNMP采集 虽然配置麻烦,但绕不开

4.3 Docker与Docker-Compose安装

终于到了重头戏。Docker让部署变得极其简单。你想想看,以前装个监控系统,要手动装数据库、装Web服务、配置依赖……现在一个docker-compose up就全搞定了。

4.3.1 安装Docker Engine

我推荐用官方脚本安装,省心。

# 卸载旧版本(如果有)
sudo apt remove docker docker-engine docker.io containerd runc

# 安装依赖
sudo apt install -y ca-certificates curl gnupg lsb-release

# 添加Docker官方GPG密钥
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

# 添加稳定版仓库
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

# 安装Docker
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io

# 启动并设置开机自启
sudo systemctl enable docker
sudo systemctl start docker

# 验证安装
sudo docker --version
sudo docker run hello-world  # 测试能否正常运行

避坑指南:我曾经在CentOS 7上装Docker,忘了装containerd.io,结果容器一直起不来。折腾了两小时才发现。Ubuntu上一般不会,但CentOS用户要特别注意。

4.3.2 将用户加入docker组

每次执行docker命令都要加sudo,太烦了。我习惯把当前用户加到docker组里。

# 将monitor用户加入docker组
sudo usermod -aG docker monitor

# 重新登录生效
su - monitor

# 验证
docker ps  # 不需要sudo了

4.3.3 安装Docker-Compose

Docker-Compose是用来编排多容器服务的。我们的监控系统会用到多个容器(数据库、Web、采集器),所以必须装。

# 下载最新版Docker-Compose
sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

# 赋予执行权限
sudo chmod +x /usr/local/bin/docker-compose

# 验证安装
docker-compose --version

小提示:如果下载慢,可以用国内镜像源。我一般用https://get.daocloud.io/docker/compose/releases/download/替换GitHub地址。

4.3.4 验证Docker环境

装完别急着走,跑个简单的测试,确保一切正常。

# 创建一个测试目录
mkdir ~/docker_test && cd ~/docker_test

# 创建docker-compose.yml
cat > docker-compose.yml <

如果能看到Nginx的欢迎页面,说明Docker和Compose都正常工作。

4.4 环境验证清单

最后,我习惯列一个检查清单。每完成一项就打个勾,心里踏实。

检查项 命令/方法 预期结果
系统版本 lsb_release -a Ubuntu 22.04 LTS
Python版本 python3 --version 3.10+
pip版本 pip3 --version 21.0+
Docker版本 docker --version 24.0+
Docker-Compose版本 docker-compose --version 2.20+
容器运行测试 docker run hello-world 打印成功信息

好了,环境准备到这里就结束了。你可能会觉得步骤有点多,但相信我,这一步走得稳,后面写监控脚本、部署容器的时候,你会感谢现在的自己。

嗯,接下来就可以开始搭建真正的监控系统了。


公众号:蓝海资料掘金营,微信deep3321

专注资料整理