在服务器运维过程中,CentOS 7 仍然是许多企业的首选操作系统。由于其稳定性和广泛的应用,掌握 CentOS 7 的基础知识至关重要。但实际操作中,我们经常遇到各种各样的问题,比如配置防火墙导致服务无法访问,或者不当的资源限制导致应用崩溃。本文将结合我 10 年的经验,从底层原理到实战配置,全面梳理 CentOS 7 的基础知识点,并分享一些运维避坑经验。
1. CentOS 7 核心组件与概念
CentOS 7 基于 Linux 内核,其核心组件包括:
- Kernel(内核): 操作系统的核心,负责管理硬件资源,提供系统调用接口。
- Systemd: 系统初始化和服务管理器,取代了 SysVinit,提供了更高效的并行启动和服务管理能力。
- RPM (Red Hat Package Manager): 软件包管理器,用于安装、卸载和管理软件包。使用
yum命令可以方便地管理 RPM 包。 - Bash: 默认的 Shell 环境,用于执行命令和脚本。
- Firewalld: 默认的防火墙管理工具,提供了动态防火墙规则管理。
了解这些核心组件是掌握 CentOS 7 的基础。
2. 常用命令与工具
掌握一些常用的命令和工具,可以极大地提高运维效率:
- 系统信息:
uname -a,cat /etc/redhat-release,hostnamectl - 进程管理:
ps aux,top,htop,kill,killall - 磁盘管理:
df -h,du -sh,fdisk,mkfs,mount - 网络配置:
ip addr,ifconfig,ping,netstat,ss - 日志查看:
tail -f,cat,grep,journalctl
例如,使用 top 命令可以实时查看系统资源占用情况,使用 journalctl 可以查看系统日志,方便排查问题。
3. Systemd 服务管理
Systemd 是 CentOS 7 中最重要的组件之一。掌握 Systemd 的服务管理非常重要。
常用命令:
systemctl start <service>: 启动服务systemctl stop <service>: 停止服务systemctl restart <service>: 重启服务systemctl status <service>: 查看服务状态systemctl enable <service>: 设置开机自启动systemctl disable <service>: 禁用开机自启动
服务配置文件: 位于
/usr/lib/systemd/system/或/etc/systemd/system/目录下。
例如,要重启 Nginx 服务,可以使用 systemctl restart nginx 命令。如果 Nginx 配置文件修改后,需要执行 systemctl daemon-reload 命令重新加载配置。
4. Firewalld 防火墙配置
Firewalld 是 CentOS 7 默认的防火墙管理工具。正确配置 Firewalld 可以有效地保护服务器安全。
常用命令:
firewall-cmd --state: 查看防火墙状态firewall-cmd --get-active-zones: 查看活动区域firewall-cmd --zone=<zone> --add-port=<port>/<protocol> --permanent: 永久添加端口firewall-cmd --zone=<zone> --remove-port=<port>/<protocol> --permanent: 永久移除端口firewall-cmd --reload: 重新加载防火墙配置
区域 (Zone): Firewalld 使用区域来管理防火墙规则。常用的区域包括
public,private,trusted等。
避坑经验: 经常有同学配置了 Firewalld 规则,但是没有使用 --permanent 参数,导致服务器重启后规则失效。此外,如果使用了宝塔面板,需要注意宝塔面板的防火墙规则和 Firewalld 的规则可能冲突,导致端口无法访问。建议优先配置 Firewalld,再配置宝塔面板的防火墙。
# 永久添加 80 端口到 public 区域
firewall-cmd --zone=public --add-port=80/tcp --permanent
# 重新加载防火墙配置
firewall-cmd --reload
5. YUM 包管理
YUM (Yellowdog Updater, Modified) 是 CentOS 7 的包管理器,用于安装、更新和卸载软件包。
常用命令:
yum install <package>: 安装软件包yum update: 更新所有软件包yum update <package>: 更新指定软件包yum remove <package>: 卸载软件包yum search <keyword>: 搜索软件包yum list installed: 列出已安装的软件包
YUM 源: 软件包的来源。可以配置官方 YUM 源,也可以配置第三方 YUM 源,例如 EPEL 源。
避坑经验: 安装软件包时,尽量使用官方 YUM 源,避免安装来源不明的软件包,以免造成安全风险。如果需要使用第三方 YUM 源,建议先验证其可靠性。
6. 性能优化与资源限制
对 CentOS 7 进行性能优化和资源限制,可以提高服务器的稳定性和性能。
- ulimit: 用于限制用户进程的资源使用,例如文件句柄数、内存使用量等。可以在
/etc/security/limits.conf文件中配置。 - sysctl: 用于修改内核参数,可以优化网络性能、内存管理等。可以在
/etc/sysctl.conf文件中配置。 - Nginx 优化: 调整 Nginx 的 worker 进程数、连接数、缓存大小等参数,可以提高 Nginx 的并发处理能力。
- MySQL 优化: 调整 MySQL 的缓冲区大小、连接数等参数,可以提高 MySQL 的查询性能。
避坑经验: 修改 ulimit 和 sysctl 配置后,需要重启服务器或重新登录才能生效。在优化 Nginx 和 MySQL 时,需要根据实际情况进行调整,避免过度优化导致系统不稳定。
7. 常见问题排查与解决
在 CentOS 7 运维过程中,经常会遇到各种各样的问题。掌握一些常见的排查方法,可以快速定位问题。
- 查看日志: 通过查看系统日志、应用日志,可以了解系统的运行状态,发现错误信息。
- 使用工具: 使用
top,htop,netstat,ss等工具,可以监控系统资源占用情况,分析网络连接状态。 - Google 搜索: 遇到问题时,可以尝试使用 Google 搜索,查找解决方案。Stack Overflow 是一个很好的资源。
- 逐步排查: 从最简单的步骤开始,逐步排查问题,例如检查网络连接、防火墙规则、服务状态等。
避坑经验: 不要盲目尝试各种解决方案,要先分析问题的原因,再针对性地解决。记录每次尝试的步骤和结果,方便回溯和总结经验。
希望以上 CentOS 7 基础知识点汇总和运维避坑经验,能帮助大家更好地使用和管理 CentOS 7 服务器。
冠军资讯
加班到秃头