一、系统管理基础:构建稳定运行环境
1.1 系统安装与初始化配置
CentOS 7的安装过程需重点关注磁盘分区方案与网络配置。推荐采用LVM逻辑卷管理实现存储空间的动态扩展,网络配置建议使用NetworkManager服务实现多网卡绑定。安装完成后需立即执行以下操作:
# 更新系统至最新版本sudo yum update -y# 配置SELinux为permissive模式(测试环境)sudo sed -i 's/SELINUX=enforcing/SELINUX=permissive/g' /etc/selinux/config# 安装基础开发工具链sudo yum groupinstall "Development Tools" -y
1.2 文件系统深度管理
XFS文件系统成为CentOS 7默认选择,其优势在于支持在线扩容与延迟分配。关键管理命令包括:
- 磁盘空间监控:
df -hT+du -sh * - 磁盘配额管理:
xfs_quota工具集 - 逻辑卷操作:
lvcreate -L 50G -n web_data vg0
实际案例:某电商平台数据库服务器通过LVM快照实现每日备份,结合rsync实现异地容灾。关键脚本片段:
#!/bin/bash# 创建LVM快照lvcreate --size 10G --snapshot --name mysql_snap /dev/vg0/mysql# 挂载快照进行备份mount /dev/vg0/mysql_snap /mnt/backuptar -czf /backup/mysql_$(date +%Y%m%d).tar.gz /mnt/backupumount /mnt/backuplvremove -f /dev/vg0/mysql_snap
1.3 用户权限体系构建
RBAC模型在Linux中的实现包含三个核心组件:
- 用户与组管理:
useradd/groupadd命令 - 权限分配:
chmod/chown命令 - 访问控制:
sudo配置与ACL设置
生产环境建议:
- 禁用root直接登录,通过
/etc/ssh/sshd_config配置 - 关键服务使用独立系统用户运行
- 定期审计
/var/log/secure日志文件
二、网络服务部署:构建高可用架构
2.1 DNS服务部署实践
BIND9的配置包含三个核心文件:
- 主配置文件:
/etc/named.conf - 区域配置文件:
/etc/named.rfc1912.zones - 数据文件:
/var/named/example.com.zone
高可用方案:
- 主从复制架构
- 隐藏主服务器设计
- 结合
keepalived实现VIP切换
2.2 Web服务优化方案
Nginx与Apache的混合部署模式可兼顾性能与功能:
- 静态资源:Nginx反向代理
- 动态请求:Apache+PHP-FPM
- 会话保持:Redis存储
性能调优参数示例:
worker_processes auto;worker_rlimit_nofile 65535;events {worker_connections 4096;multi_accept on;}http {sendfile on;tcp_nopush on;keepalive_timeout 65;gzip on;gzip_types text/css application/javascript;}
2.3 数据库集群部署
MySQL主从复制配置关键步骤:
- 主库配置:
[mysqld]server-id = 1log_bin = mysql-binbinlog_format = ROW
- 从库配置:
[mysqld]server-id = 2relay_log = mysql-relay-binread_only = ON
- 授权复制账号:
CREATE USER 'repl'@'%' IDENTIFIED BY 'password';GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%';
三、自动化运维:Shell脚本实战
3.1 监控脚本开发
内存监控脚本示例:
#!/bin/bashTHRESHOLD=80MEM_USAGE=$(free | awk '/Mem/{printf("%.0f"), $3/$2*100}')if [ $MEM_USAGE -gt $THRESHOLD ]; thenecho "WARNING: Memory usage ${MEM_USAGE}% exceeds threshold ${THRESHOLD}%" | mail -s "Memory Alert" admin@example.comfi
3.2 日志分析系统
结合logrotate与自定义脚本实现日志轮转与分析:
/var/log/nginx/*.log {dailymissingokrotate 14compressdelaycompressnotifemptycreate 0640 www-data admsharedscriptspostrotate/bin/kill -USR1 `cat /run/nginx.pid 2>/dev/null` 2>/dev/null || trueendscript}
3.3 部署自动化框架
基于SSH的批量管理工具开发要点:
- 使用
ssh-keygen建立信任关系 - 通过
expect实现自动化交互 - 结合
ansible实现配置管理
四、安全加固方案
4.1 防火墙配置
firewalld动态防火墙管理示例:
# 开放Web服务端口firewall-cmd --zone=public --add-port=80/tcp --permanent# 启用富规则限制IPfirewall-cmd --add-rich-rule='rule family="ipv4" source address="192.168.1.100" port protocol="tcp" port="22" reject' --permanent# 配置NAT转发firewall-cmd --add-masquerade --permanent
4.2 入侵检测系统
fail2ban配置防止暴力破解:
[sshd]enabled = trueport = sshfilter = sshdlogpath = /var/log/securemaxretry = 3bantime = 86400
4.3 数据加密方案
LUKS磁盘加密实施步骤:
# 创建加密分区cryptsetup luksFormat /dev/sdb1# 打开加密设备cryptsetup luksOpen /dev/sdb1 cryptdata# 创建文件系统mkfs.xfs /dev/mapper/cryptdata# 自动挂载配置echo "/dev/sdb1 /data xfs defaults 0 0" >> /etc/fstabecho "cryptdata /dev/sdb1 none luks" >> /etc/crypttab
本指南通过200余个可执行命令与配置片段,系统呈现CentOS 7环境下的运维知识体系。实际部署时需根据业务规模选择合适方案,建议先在测试环境验证配置变更。对于关键业务系统,建议结合专业监控工具实现全方位保障。