Day 7-5 分层排障方法论 + 案例实战

Day 7-5 分层排障方法论 + 案例实战 核心原则:排障是从下到上逐层缩小的过程,不要一上来就看日志。 前面学了网络分层模型和诊断工具。但工具只是手段,怎么用工具一步步排查问题才是关键。 本节学习五层排查法——从物理层到应用层的系统化排障方法,以及两个真实场景的完整排障流程。 一、五层排查法概述

Day 7-5 分层排障方法论 + 案例实战

核心原则:排障是从下到上逐层缩小的过程,不要一上来就看日志。

前面学了网络分层模型和诊断工具。但工具只是手段,怎么用工具一步步排查问题才是关键。

本节学习五层排查法——从物理层到应用层的系统化排障方法,以及两个真实场景的完整排障流程。

一、五层排查法概述

1.1 什么是五层排查法?

五层排查法是从物理层到应用层的系统化排障方法,按照从下到上的顺序逐层检查,缩小问题范围。

物理层、链路层、网络层、传输层、应用层的排查顺序

1.2 五层详解

层级 名称 检查内容 关键命令
第 1 层 物理层 网线、网卡、云实例状态 ip link、云控制台
第 2 层 链路层 MAC 地址、ARP、网卡状态 ip neigh、arping
第 3 层 网络层 IP 地址、路由表、网关 ip addr、ip route、ping
第 4 层 传输层 端口监听、防火墙、连接状态 ss -tlnp、firewall-cmd
第 5 层 应用层 进程运行、配置错误、日志 systemctl status、journalctl

1.3 核心原则

核心原则:排障是从下到上逐层缩小的过程,不要一上来就看日志。

发现问题后从物理层开始;本层异常则修复,本层正常则进入上一层

二、场景 A:SSH 无法连接

客户端 10.0.0.50 与服务器 10.0.0.142

2.1 问题现象

【客户端】 ssh root@10.0.0.142
# 报错:Connection refused / timed out / denied

2.2 排查流程图

SSH 无法连接时的五层排查流程

2.3 逐步排查步骤

第 1 层:物理层

【客户端】 ip link show
【服务器】 ip link show
# 确认网卡 state UP

第 2 层:链路层

【客户端】 ip neigh
# 状态为 REACHABLE 表示正常

第 3 层:网络层

【客户端】 ping 10.0.0.142
# 通则 → 网络正常
# 不通 → 检查 IP 配置

第 4 层:传输层

【服务器】 ss -tlnp | grep :22
# 有输出 → 服务在监听
# 无输出 → 服务未启动

【服务器】 firewall-cmd --list-all
# 确认 22 端口已放行

【客户端】 nc -zv 10.0.0.142 22
# 成功 → 端口通
# 失败 → 防火墙拦截
参数 含义
-z 仅扫描端口,不发送任何数据(零 I/O 模式),只测试连通性
-v 详细输出,显示连接结果(成功/失败)

第 5 层:应用层

【服务器】 systemctl status sshd
# 状态为 running

【服务器】 tail -20 /var/log/secure
# 查看认证失败原因

三、场景 B:网站无法访问【待学完后续课程】

Web 客户端与服务器的请求和响应

3.1 问题现象

【客户端】 curl http://10.0.0.142
# 或浏览器访问 http://10.0.0.142
# 报错:Connection refused / timed out / 404 / 502 / 503

3.2 排查流程图

网站无法访问时的五层排查流程

3.3 逐层排查步骤

第 1 层:物理层

【客户端】 ip link show
【服务器】 ip link show
# 确认网卡 state UP

第 2 层:链路层

【客户端】 ip neigh show 10.0.0.142
# 状态为 REACHABLE 表示正常

第 3 层:网络层

【客户端】 ping 10.0.0.142
# 通则 → 网络正常
# 不通 → 检查 IP 配置

第 4 层:传输层

【服务器】 ss -tlnp | grep -E ":80|:443|:8080"
# 有输出 → 服务在监听
# 无输出 → 服务未启动

【服务器】 firewall-cmd --list-all
# 确认 Web 端口已放行

【客户端】 nc -zv 10.0.0.142 80
# 成功 → 端口通
# 失败 → 防火墙拦截

第 5 层:应用层

【服务器】 curl -I http://localhost:80
# 返回 200 → Web 服务正常,排查客户端/网络
# 失败 → Web 服务有问题

【服务器】 systemctl status nginx
# 状态为 running

【服务器】 nginx -t
# 检查配置文件语法

【服务器】 tail -20 /var/log/nginx/error.log
# 查看错误日志

【服务器】 getenforce
# Enforcing 可能拦截,临时关闭测试:setenforce 0

【服务器】 df -h
# 检查磁盘空间

# 验证
【客户端】 curl http://10.0.0.142
# 返回页面内容 → 故障已解决

四、排障决策树

4.1 SSH 问题决策树

SSH 决策树:ping、22 端口、sshd 监听、防火墙、认证日志、SELinux 和磁盘

4.2 Web 问题决策树

Web 决策树:ping、本地 curl、Nginx 配置、后端服务、错误码、权限和路径

五、交付物

5.1 分层排障决策树

需绘制《后台管理系统分层排障决策树》(从现象到根因的五层分支流程图):

后台管理系统分层排障决策树中的各层检查命令

5.2 Linux 基础排障 Runbook

需编写《Linux 基础排障 Runbook》,含 SSH 和 Web 两类场景的症状、逐层检查命令、修复步骤、验证方法。

# Linux 基础排障 Runbook

## 场景 1:SSH 无法连接

### 症状

- Connection timed out
- Connection refused
- Permission denied

### 排查步骤

1. 物理层:检查云控制台实例状态。
2. 网络层:ping IP 检查连通性。
3. 传输层:telnet IP 22 检查端口。
4. 应用层:systemctl status sshd。

### 修复步骤

- 服务未启动:systemctl start sshd。
- 防火墙拦截:firewall-cmd --add-service=ssh。
- 认证失败:检查 /var/log/secure。

### 验证方法

- ssh user@IP 成功登录。

---

## 场景 2:网站无法访问

### 症状

- 浏览器返回 502/503/504。
- 页面加载超时。

### 排查步骤

1. 网络层:ping IP 检查连通性。
2. 传输层:ss -tlnp | grep :80 检查端口。
3. 应用层:curl -I http://localhost 本地测试。

### 修复步骤

- Nginx 未启动:systemctl start nginx。
- 配置错误:nginx -t 检查并修复。
- 后端服务未启动:systemctl start 后端服务。

### 验证方法

- curl -I http://IP 返回 200。

评论