RHEL 服务器又双叒叕起不来了?这 7 个红帽运维排障套路,建议贴在工位上
半夜告警、SSH 连不上、业务群炸了服务 502、yum 装个包报错、重启后网卡没起来……RHEL红帽企业版 Linux在生产环境确实稳但真出问题时坑往往不在系统本身而在你没看的那行日志里。这篇文章把 7 个高频排障场景拆开每个都给「先看什么、再敲什么、别踩什么」命令直接复制就能用。建议先收藏半夜被叫起来能救急。1. systemd 服务起不来别只看 status 那一行现象systemctl start xxx 报错 Job failed / Active: failed。真正报错在 journal不在 statussystemctl status xxx -ljournalctl -xeu xxx.service --no-pager常见根因端口被占用、配置文件语法错、权限不对、依赖的其它服务没起。排障顺序步骤命令看什么看状态systemctl status xxx -l是不是 failed、主进程退出码看真因journalctl -xeu xxx.service红色报错那几行看执行文件systemctl show xxx -p ExecStart二进制路径/参数对不对坑用 restart 没用得看 journalctl盲目 reboot 会把问题掩盖掉下次还犯。2. yum/dnf 装包报错源的问题占八成RHEL 8 用 dnf兼容 yum 命令。CentOS 停服后很多老镜像源已经 404。先看源再清缓存dnf repolist -vdnf clean all dnf makecache订阅相关排查subscription-manager statussubscription-manager repos --list-enabled离线环境挂 ISO 做本地源mount -o loop rhel-9-x86_64-dvd.iso /mnt# 在 /etc/yum.repos.d/ 下建 .repobaseurlfile:///mnt/AppStreamdnf makecache坑别把 CentOS 源硬塞给 RHEL 又期待订阅权益生产优先用官方或合规镜像源。清缓存能解决一大半「莫名其妙装不上」。3. 防火墙把端口拦了firewalld 才是默认RHEL 7 默认 firewalld不是直接写 iptables。放行端口permanent 一定要加否则重启失效firewall-cmd --list-allfirewall-cmd --permanent --add-port8080/tcpfirewall-cmd --reload放行服务用firewall-cmd --permanent --add-servicehttp。坑改了没 --reload或只加了没 --permanent或手写了 iptables 又被 firewalld 覆盖。排障时可临时 systemctl stop firewalld 验证但别长期关。4. SELinux 拦程序别一上来就 disabled现象权限明明 755程序还是 Permission deniedhttp 读不到自定义目录。先看模式getenforce # Enforcing / Permissive / Disabled临时放宽确认是不是它的问题setenforce 0 # 切到 Permissive仅本次会话找真正的拒绝原因ausearch -m AVC -ts recentsealert -a /var/log/audit/audit.log正确修复以 http 读 /data 为例semanage fcontext -a -t httpd_sys_content_t /data(/.*)?restorecon -Rv /data坑直接改 /etc/selinux/config 设 disabled 会丢标签、影响安全基线优先用布尔值或标签修复。5. 磁盘满了 / LVM 在线扩容xfs 和 ext4 不一样先定位df -h # 哪个挂载点满du -sh /* 2/dev/null | sort -h # 找大目录journalctl --vacuum-size500M # 清 journal 日志LVM 在线扩容不用停机lvextend -L 20G /dev/vg00/lv_rootxfs_growfs / # xfs 文件系统resize2fs /dev/vg00/lv_root # ext4 文件系统坑xfs 只能扩不能缩ext4 缩容要先 umount 且风险高根分区别随手缩。6. 网络不通nmcli 才是 8/9 的正统RHEL 8/9 默认 NetworkManager老教程里的 network.service 已弃用。看连接状态nmcli con shownmcli dev status改静态 IP示例nmcli con mod eth0 ipv4.addresses 192.168.1.10/24 \ipv4.gateway 192.168.1.1 ipv4.dns 223.5.5.5 ipv4.method manualnmcli con up eth0坑DNS 不生效先看 /etc/resolv.conf——它由 NetworkManager 管理手改会被覆盖网卡名从 eth0 变成 ens192一致化命名脚本写死 eth0 就翻车。7. 文件句柄 / 内核参数高并发的隐形天花板现象Too many open files连接数上不去。用户级永久/etc/security/limits.conf* soft nofile 65535* hard nofile 65535系统级/etc/sysctl.d/99-tuning.conffs.file-max 2097152net.core.somaxconn 65535vm.swappiness 10生效sysctl -p。坑只改 soft 没改 hard 不生效limits.conf 对 systemd 服务不一定管用得在 unit 里加 LimitNOFILE。故障速查表存手机里就够故障现象第一步该敲的命令八成原因服务起不来journalctl -xeu 服务名配置 / 端口 / 依赖装包报错dnf repolist -v dnf clean all源失效 / 缓存端口不通firewall-cmd --list-all没放行 / 没 reload权限被拒getenforce ausearch -m AVCSELinux磁盘满df -h du -sh /*日志 / 大文件网络不通nmcli dev statusNM 未起 / 配置错句柄耗尽ulimit -n / cat /proc/pid/limitsnofile 太小小结RHEL 排障的核心就一句先看日志再下结论别靠 reboot 蒙。- 服务问题看 journalctl- 网络问题看 nmcli- 安全问题看 SELinux- 包问题看 dnf- 存储问题看 LVM把这 7 条存成速查表半夜被叫起来也能稳。收藏备用下次排障直接抄。