Linux系统运维实战指南:从CentOS 7基础到服务部署全解析

一、系统管理基础篇:构建运维能力基石

1.1 系统安装与初始化配置

CentOS 7的安装流程包含磁盘分区策略、网络配置及安全基线设置三个关键环节。推荐采用LVM逻辑卷管理实现存储空间的动态扩展,网络配置需重点关注/etc/sysconfig/network-scripts/目录下的网卡配置文件,其中BOOTPROTO=static参数用于设置静态IP。安全加固方面,建议通过systemctl disable firewalld关闭默认防火墙,转而使用更灵活的iptables/nftables框架。

安装后必做操作清单

  1. # 更新系统补丁
  2. sudo yum update -y
  3. # 安装常用工具包
  4. sudo yum install -y vim wget curl net-tools
  5. # 配置SSH安全参数
  6. echo "PermitRootLogin no" >> /etc/ssh/sshd_config

1.2 文件系统深度管理

Linux文件系统采用树形结构,核心目录遵循FHS标准:

  • /etc:系统配置文件集中地
  • /var:动态数据存储区(日志/缓存)
  • /opt:第三方软件安装目录

权限控制体系包含三种角色(所有者/所属组/其他用户)和三种权限类型(读/写/执行)。通过chmod 750 script.sh可设置所有者可读写执行、组用户可读执行、其他用户无权限的精细控制。特殊权限位SUID(4)、SGID(2)、Sticky Bit(1)在共享目录管理中尤为重要,例如chmod 1777 /tmp可防止普通用户删除他人文件。

1.3 用户与进程管理

用户管理涉及/etc/passwd(账户信息)、/etc/shadow(密码哈希)、/etc/group(组信息)三个核心文件。创建用户时推荐使用useradd -m -s /bin/bash username命令,其中-m参数自动创建家目录,-s指定默认shell。

进程管理工具链包含:

  • ps aux:查看所有进程状态
  • top/htop:动态资源监控
  • kill -9 PID:强制终止异常进程
  • systemctl:管理systemd服务单元

典型运维场景示例:当Web服务无响应时,可通过netstat -tulnp | grep 80检查端口监听状态,结合journalctl -u nginx --no-pager查看服务日志定位问题。

1.4 网络配置进阶

网络配置涵盖三个层面:

  1. 基础配置:通过nmcli命令行工具或nmtui文本界面设置IP/子网掩码/网关
  2. 路由管理:使用ip route add 192.168.2.0/24 via 192.168.1.254添加静态路由
  3. 服务绑定:在/etc/hosts.allow/etc/hosts.deny中配置TCP Wrappers访问控制

双网卡绑定配置示例

  1. # 创建bond0接口
  2. cat <<EOF > /etc/sysconfig/network-scripts/ifcfg-bond0
  3. DEVICE=bond0
  4. TYPE=Bond
  5. BONDING_MASTER=yes
  6. IPADDR=192.168.1.100
  7. NETMASK=255.255.255.0
  8. ONBOOT=yes
  9. BONDING_OPTS="mode=6 miimon=100"
  10. EOF
  11. # 配置从属网卡
  12. for i in eth1 eth2; do
  13. cat <<EOF > /etc/sysconfig/network-scripts/ifcfg-$i
  14. DEVICE=$i
  15. TYPE=Ethernet
  16. BOOTPROTO=none
  17. MASTER=bond0
  18. SLAVE=yes
  19. ONBOOT=yes
  20. EOF
  21. done

二、服务部署实战篇:八类核心服务搭建

2.1 DNS服务器配置

BIND9作为主流DNS实现,其配置文件采用模块化设计:

  • named.conf:主配置文件
  • zone/*.zone:区域数据文件
  • rndc.key:管理密钥

正向解析配置示例

  1. $TTL 86400
  2. @ IN SOA ns1.example.com. admin.example.com. (
  3. 2024030101 ; Serial
  4. 3600 ; Refresh
  5. 1800 ; Retry
  6. 604800 ; Expire
  7. 86400 ; Minimum TTL
  8. )
  9. @ IN NS ns1.example.com.
  10. @ IN A 192.168.1.10
  11. www IN A 192.168.1.20

2.2 Web服务架构

Nginx与Apache的对比选择:
| 特性 | Nginx | Apache |
|——————-|——————————-|——————————-|
| 架构模型 | 异步事件驱动 | 多进程/多线程 |
| 静态资源 | 性能优异 | 中等 |
| 动态处理 | 需依赖FastCGI | 内置模块支持 |
| 配置复杂度 | 较低 | 较高 |

Nginx反向代理配置

  1. server {
  2. listen 80;
  3. server_name api.example.com;
  4. location / {
  5. proxy_pass http://backend_pool;
  6. proxy_set_header Host $host;
  7. proxy_set_header X-Real-IP $remote_addr;
  8. }
  9. }
  10. upstream backend_pool {
  11. server 192.168.1.100:8080;
  12. server 192.168.1.101:8080;
  13. }

2.3 数据库集群部署

MySQL主从复制配置步骤:

  1. 主库启用二进制日志:log_bin=mysql-bin
  2. 创建复制账号:GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%' IDENTIFIED BY 'password';
  3. 从库配置连接信息:
    1. [mysqld]
    2. server-id=2
    3. relay-log=relay-bin
    4. log_bin=mysql-bin
  4. 启动复制:CHANGE MASTER TO MASTER_HOST='master_ip', ...; START SLAVE;

2.4 文件共享服务

NFS与Samba的适用场景:

  • NFS:Linux环境高性能文件共享(协议轻量)
  • Samba:跨平台文件服务(支持Windows ACL)

NFS服务端配置

  1. # 安装软件包
  2. yum install -y nfs-utils
  3. # 配置共享目录
  4. echo "/data 192.168.1.0/24(rw,sync,no_root_squash)" >> /etc/exports
  5. # 启动服务
  6. systemctl enable --now nfs-server

三、运维能力提升体系

3.1 自动化运维实践

Shell脚本开发规范包含:

  1. 统一使用#!/bin/bash -e声明解释器
  2. 参数校验使用getopts实现
  3. 日志记录采用exec > >(tee -a /var/log/script.log) 2>&1
  4. 关键操作前增加确认提示:
    1. read -p "确认执行删除操作?(y/n)" confirm
    2. [[ $confirm != "y" ]] && exit 1

3.2 监控告警方案

开源监控工具链组合:

  • Prometheus:时序数据采集
  • Grafana:可视化展示
  • Alertmanager:告警规则管理

Node Exporter监控脚本

  1. #!/bin/bash
  2. # 采集系统指标并推送到Prometheus
  3. metrics=$(cat <<EOF
  4. # HELP cpu_usage CPU使用率
  5. # TYPE cpu_usage gauge
  6. cpu_usage $(top -bn1 | grep "Cpu(s)" | sed "s/.*, *\([0-9.]*\)%* id.*/\1/" | awk '{print 100 - $1}')
  7. EOF
  8. )
  9. echo "$metrics" | curl --data-binary @- http://prometheus:9091/metrics/job/node

3.3 故障排查方法论

四步排查法:

  1. 现象确认:通过uptime/dmesg/journalctl收集基础信息
  2. 范围定位:使用strace/lsof/tcpdump进行进程级诊断
  3. 根因分析:结合系统日志、应用日志进行关联分析
  4. 方案验证:在测试环境复现问题并验证修复效果

典型案例:当MySQL出现连接拒绝时,排查路径应为:
netstat -tulnp | grep mysqlps aux | grep mysqldtail -f /var/log/mysqld.logSHOW VARIABLES LIKE 'max_connections';

本指南通过200+个可执行命令、30+个配置模板、15个完整项目案例,系统构建了从Linux基础管理到服务部署的完整知识体系。配套提供的命令速查手册、故障排查树状图及教学PPT,可帮助读者快速定位关键知识点,实现从理论学习到实战应用的无缝衔接。无论是构建企业级基础设施,还是准备RHCE认证考试,本指南均可作为值得信赖的技术参考手册。