在当今数字化时代,CentOS作为企业级Linux发行版,以其稳定性、安全性和兼容性赢得了众多系统管理员的青睐。本文将深入探讨CentOS服务器的日常管理技巧和性能优化策略,帮助你成为一名高效的Linux运维工程师。
CentOS基础管理:稳固运维的基石
系统安装与初始化配置
CentOS的安装看似简单,但一个良好的初始配置能为后续运维工作省去不少麻烦。在安装过程中,分区方案的选择尤为关键。对于生产环境,推荐采用独立的/boot
、/
、/home
和swap
分区,其中/boot
分区建议设置为500MB-1GB,swap
分区大小通常是物理内存的1-2倍。
安装完成后,首要任务是进行系统初始化配置:
## 更新系统
yum update -y
配置网络
nmcli con mod eth0 ipv4.addresses 192.168.1.100/24
nmcli con mod eth0 ipv4.gateway 192.168.1.1
nmcli con mod eth0 ipv4.dns "8.8.8.8 8.8.4.4"
nmcli con up eth0
关闭不必要的服务
systemctl stop postfix
systemctl disable postfix

展示CentOS 7/8安装过程中的分区配置界面?
??...
用户与权限管理
在多用户环境中,合理的用户权限管理是系统安全的第一道防线。遵循最小权限原则,为不同用户分配适当的权限:
## 创建新用户并设置密码
useradd -m -s /bin/bash admin
passwd admin
将用户添加到sudo组
usermod -aG wheel admin
限制root直接登录
sed -i 's/#PermitRootLogin yes/PermitRootLogin no/' /etc/ssh/sshd_config
systemctl restart sshd
对于更精细的权限控制,可以使用ACL(Access Control List):
## 设置ACL
setfacl -m u:admin:rw /var/www/html/index.html
getfacl /var/www/html/index.html
系统监控与性能分析
实时监控工具
有效的系统监控是预防问题的关键。CentOS提供了多种监控工具,每种工具都有其独特的优势:
- top:实时显示进程活动,是快速检查系统负载的首选工具
- htop:top的增强版,提供更友好的界面和更多功能
- vmstat:报告虚拟内存统计信息,帮助识别内存瓶颈
- iostat:监控CPU和I/O统计信息,特别适用于存储性能分析
- sar:收集、报告和保存系统活动信息,适合长期性能分析
## 安装监控工具
yum install -y sysstat htop
使用vmstat检查系统状态
vmstat 1 5
使用iostat监控磁盘I/O
iostat -xz 1
性能瓶颈识别
性能优化始于瓶颈识别。常见的性能瓶颈包括CPU、内存、磁盘I/O和网络。以下是识别这些瓶颈的方法:
CPU瓶颈:
## 查看CPU使用率
top
或
mpstat 1 5
查看CPU核心数
cat /proc/cpuinfo | grep "processor" | wc -l
内存瓶颈:
## 查看内存使用情况
free -h
或
cat /proc/meminfo
查看内存占用最高的进程
ps aux --sort=-%mem | head
磁盘I/O瓶颈:
## 查看磁盘使用情况
df -h
查看I/O统计
iostat -d -x 1
查看磁盘读写速度
dd if=/dev/zero of=/tmp/test bs=1G count=1 oflag=direct

展示一
个CentOS系统监控仪表板,包含CPU使用...
性能优化实战
系统内核参数调优
内核参数调优是提升服务器性能的重要手段。通过修改/etc/sysctl.conf
文件,可以优化网络、内存和文件系统性能:
## 编辑sysctl配置
vim /etc/sysctl.conf
添加以下参数
网络优化
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_fin_timeout = 30
net.core.wmem_max = 16777216
net.core.rmem_max = 16777216
文件系统优化
fs.file-max = 100000
fs.inotify.max_user_watches = 100000
内存优化
vm.swappiness = 10
vm.dirty_ratio = 60
vm.dirty_background_ratio = 2
应用配置
sysctl -p
磁盘与文件系统优化
磁盘I/O通常是系统性能的主要瓶颈。以下是一些优化策略:
- 选择合适的文件系统:
- XFS:适合大文件和高并发场景
- ext4:通用性好,兼容性强
- Btrfs:适合需要快照和数据压缩的场景
- 调整I/O调度器:
## 查看当前调度器
cat /sys/block/sda/queue/scheduler
临时修改调度器
echo noop > /sys/block/sda/queue/scheduler
永久修改(通过grub)
grubby --update-kernel=ALL --args="elevator=noop"
- 使用RAID提升性能和可靠性:
## 安装mdadm
yum install -y mdadm
创建RAID 0(性能优先)
mdadm --create /dev/md0 --level=0 --raid-devices=2 /dev/sdb /dev/sdc
创建RAID 1(安全优先)
mdadm --create /dev/md1 --level=1 --raid-devices=2 /dev/sdd /dev/sde
网络性能优化
网络性能优化对于Web服务器和数据库服务器尤为重要:
## 网络接口 bonding(聚合多个网络接口)
安装bonding驱动
modprobe bonding
创建bonding配置
cat > /etc/sysconfig/network-scripts/ifcfg-bond0 << EOF
DEVICE=bond0
TYPE=Bond
IPADDR=192.168.1.100
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
ONBOOT=yes
BOOTPROTO=none
BONDING_OPTS="mode=4 miimon=100"
EOF
配置从属接口
cat > /etc/sysconfig/network-scripts/ifcfg-eth0 << EOF
DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
MASTER=bond0
SLAVE=yes
EOF
重启网络服务
systemctl restart network
此外,还可以通过优化TCP参数、使用高效的网络服务(如Nginx替代Apache)以及启用TCP BBR拥塞控制算法来提升网络性能:
## 启用TCP BBR
echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf
echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf
sysctl -p
验证BBR是否启用
sysctl net.ipv4.tcp_available_congestion_control
自动化运维与安全加固
使用Ansible实现自动化配置管理
自动化运维不仅能提高效率,还能减少人为错误。Ansible是一款简单而强大的自动化工具,特别适合CentOS环境:
## 安装Ansible
yum install -y epel-release
yum install -y ansible
创建Ansible配置文件
mkdir -p /etc/ansible/hosts
cat > /etc/ansible/hosts << EOF
[webservers]
192.168.1.101
192.168.1.102
[databases]
192.168.1.201
EOF
创建playbook示例
cat > /etc/ansible/webserver.yml << EOF
---
- hosts: webservers
tasks:
- name: Install Apache
yum:
name: httpd
state: present
- name: Start and enable Apache
service:
name: httpd
state: started
enabled: yes
EOF
执行playbook
ansible-playbook /etc/ansible/webserver.yml
系统安全加固
安全是运维工作的重中之重。以下是一些CentOS安全加固的关键步骤:
- 配置防火墙:
## 安装并启动firewalld
yum install -y firewalld
systemctl start firewalld
systemctl enable firewalld
开放必要端口
firewall-cmd --permanent --add-service=ssh
firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
firewall-cmd --reload
- 配置SELinux:
## 检查SELinux状态
getenforce
设置SELinux为 enforcing 模式
setenforce 1
sed -i 's/SELINUX=disabled/SELINUX=enforcing/' /etc/selinux/config
查看和修改文件SELinux上下文
ls -Z /var/www/html/index.html
chcon -R -t httpd_sys_content_t /var/www/html/
- 安装和配置Fail2Ban:
## 安装EPEL仓库和Fail2Ban
yum install -y epel-release
yum install -y fail2ban
配置Fail2Ban
cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
cat > /etc/fail2ban/jail.d/sshd.local << EOF
[sshd]
enabled = true
port = ssh
logpath = %(sshd_log)s
maxretry = 3
bantime = 3600
EOF
启动Fail2Ban
systemctl start fail2ban
systemctl enable fail2ban
总结与最佳实践
CentOS运维是一门需要不断学习和实践的技艺。在日常工作中,遵循以下最佳实践可以帮助你更高效地管理服务器:
- 定期备份:使用rsync、tar或专业备份工具定期备份重要数据
- 文档记录:详细记录系统配置、变更过程和问题解决方案
- 持续监控:建立完善的监控体系,及时发现并解决问题
- 定期更新:保持系统和软件包的及时更新,修复安全漏洞
- 性能测试:在进行重大变更前,进行充分的性能测试
- 灾难恢复:制定并定期演练灾难恢复计划
正如一位资深运维工程师所说:"优秀的运维不是解决问题,而是预防问题。"通过本文介绍的方法和技巧,相信你能够在CentOS服务器管理与性能优化方面取得显著进步,为企业的IT基础设施提供更加稳定、高效的支持。
无论是刚入门的Linux管理员,还是经验丰富的运维专家,都可以从CentOS的强大功能和灵活性中受益。希望这篇指南能成为你在CentOS运维道路上的得力助手,助你应对各种挑战,成为一名出色的Linux运维工程师。
转载本站文章请保留原文链接,如文章内说明不允许转载该文章,请不要转载该文章,谢谢合作。