Linux系统运维全攻略:从基础搭建到企业级优化实践

第1章 操作系统安装与基础环境搭建

1.1 系统安装全流程

在虚拟化环境中部署Linux系统需完成三项核心准备:获取ISO镜像文件时建议选择LTS(长期支持)版本,确保系统稳定性;虚拟机配置需根据业务场景分配资源,例如Web服务可配置2核4G内存,数据库服务建议4核8G起;安装CentOS/RHEL系统时,分区方案推荐采用LVM逻辑卷管理,典型分区策略为/boot(1GB)、swap(内存1.5倍)、/(剩余空间),其中/var分区建议单独划分以应对日志增长。

安装过程中的关键配置包括:网络模式选择NAT模式便于内网测试,桥接模式适合需要公网访问的场景;磁盘接口类型选择VirtIO可提升I/O性能;安装完成后务必记录root密码并妥善保管。对于物理服务器部署,需额外关注RAID阵列配置和BIOS设置优化。

1.2 基础配置十项优化

  1. 主机名管理:通过hostnamectl set-hostname server01命令修改主机名,同步修改/etc/hostname文件确保永久生效,并在/etc/hosts中添加IP与主机名映射。
  2. 网络配置:采用nmcli工具配置静态IP(示例命令:nmcli con mod eth0 ipv4.addresses 192.168.1.100/24 ipv4.gateway 192.168.1.1 ipv4.dns "8.8.8.8" ipv4.method manual),配置完成后执行nmcli con reload生效。
  3. 用户管理:遵循最小权限原则创建普通用户,通过useradd -m -s /bin/bash devops创建用户并设置密码,使用visudo配置sudo权限时建议按角色分组授权。
  4. 软件源配置:优先使用国内镜像源(如某高校开源镜像站),修改/etc/yum.repos.d/CentOS-Base.repo文件,执行yum makecache生成缓存。
  5. 安全加固:关闭防火墙服务(systemctl stop firewalld)仅限测试环境,生产环境应配置精确规则;通过setenforce 0临时关闭SELinux,修改/etc/selinux/config文件实现永久禁用。
  6. SSH优化:修改/etc/ssh/sshd_config文件,禁用root登录(PermitRootLogin no)、修改默认端口(Port 2222)、限制登录尝试次数(MaxAuthTries 3),重启服务生效。
  7. 资源限制:在/etc/security/limits.conf中设置* soft nofile 65535* hard nofile 65535,解决高并发场景下的文件描述符不足问题。
  8. 会话管理:配置/etc/profile中的TMOUT=600参数,实现10分钟无操作自动退出。
  9. 时间同步:安装chrony服务(yum install chrony -y),配置server ntp.aliyun.com iburst实现时间同步。
  10. 日志轮转:修改/etc/logrotate.conf配置日志切割规则,例如设置/var/log/messages每日切割且保留7天。

第2章 核心目录与配置文件解析

2.1 系统目录架构

Linux文件系统采用FHS(Filesystem Hierarchy Standard)标准,关键目录包括:

  • /etc:系统配置文件集中存放目录,包含网络、服务、用户等配置
  • /var:动态数据目录,包含日志(/var/log)、缓存(/var/cache)等
  • /usr:应用程序安装目录,包含二进制文件(/usr/bin)、库文件(/usr/lib)
  • /dev:设备文件目录,硬盘(/dev/sda)、终端(/dev/ttyS0)等设备映射
  • /proc:虚拟文件系统,实时反映内核运行状态(如/proc/cpuinfo

2.2 关键配置文件详解

  1. 网络配置/etc/sysconfig/network-scripts/ifcfg-eth0文件定义网卡参数,包含IP地址、子网掩码、网关等关键字段,修改后需执行nmcli con reload生效。
  2. DNS解析/etc/resolv.conf文件配置DNS服务器,示例内容:
    1. nameserver 8.8.8.8
    2. nameserver 114.114.114.114
    3. options timeout:2
  3. 主机名管理/etc/hostname存储系统主机名,/etc/hosts实现本地域名解析,建议包含127.0.0.1和局域网IP的映射。
  4. 文件系统挂载/etc/fstab定义开机自动挂载配置,典型条目示例:
    1. /dev/sdb1 /data ext4 defaults 0 0
    2. 192.168.1.200:/nfs /mnt/nfs nfs defaults 0 0
  5. 启动脚本/etc/rc.local文件可在系统启动时执行自定义命令,需确保文件具有可执行权限(chmod +x /etc/rc.local)。
  6. 环境变量/etc/profile/etc/bashrc定义全局环境变量,用户级配置可修改~/.bash_profile文件。
  7. 定时任务/etc/crontab文件配置系统级定时任务,用户级任务通过crontab -e命令编辑,时间格式为分 时 日 月 周 命令
  8. 用户管理/etc/passwd存储用户基本信息,/etc/shadow保存加密密码,/etc/group定义用户组信息,修改时需使用vipw/vigr等安全编辑工具。

第3章 企业级运维实践

3.1 自动化部署方案

采用Ansible实现批量配置管理,示例playbook实现SSH端口修改:

  1. - hosts: web_servers
  2. tasks:
  3. - name: Modify SSH port
  4. lineinfile:
  5. path: /etc/ssh/sshd_config
  6. regexp: '^#Port 22'
  7. line: 'Port 2222'
  8. notify: Restart SSH
  9. handlers:
  10. - name: Restart SSH
  11. service:
  12. name: sshd
  13. state: restarted

3.2 监控告警体系

构建基于Prometheus+Grafana的监控系统:

  1. 节点导出器(Node Exporter)采集CPU、内存、磁盘等基础指标
  2. Alertmanager配置告警规则(如磁盘使用率>90%触发告警)
  3. Grafana创建可视化看板,设置阈值标记

3.3 备份恢复策略

采用LVM快照实现数据级备份:

  1. # 创建快照
  2. lvcreate --size 10G --snapshot --name mysql_snap /dev/vg0/mysql
  3. # 挂载快照
  4. mount -o ro /dev/vg0/mysql_snap /mnt/backup
  5. # 恢复数据
  6. rsync -av /mnt/backup/ /var/lib/mysql/

3.4 安全合规建设

  1. 定期更新系统补丁(yum update --security
  2. 配置Fail2Ban防止暴力破解
  3. 使用TLS加密敏感服务通信
  4. 实施文件完整性检查(AIDE工具)

本指南通过系统化的知识梳理和实战案例解析,帮助运维人员建立完整的Linux技术体系。从基础环境搭建到企业级优化,每个环节都包含可落地的操作方案和避坑指南,特别适合作为团队技术培训教材或个人能力提升手册。建议读者结合实际业务场景进行针对性练习,逐步积累运维经验。