连接故障排查是什么
连不上实例时最忌讳直接重启。按层排查最快:先看网络与端口是否可达,再看服务端进程与日志,接着看连接数是否打满,然后核对认证、加密与保护模式,最后回到客户端连接池与防火墙规则。错误信息先分类,动作才不会发散。
基本信息
| 网络层 | 连通性测试、端口探测 |
|---|---|
| 服务端 | 进程状态、监听地址、日志尾部 |
| 连接容量 | 当前连接数、被拒绝连接数、最大连接数 |
| 认证与安全 | 密码、账号权限、加密要求、保护模式与监听绑定 |
| 客户端 | 连接池上限、超时、重试策略 |
错误信息对照
- 连接被拒绝:进程未启动、端口不对或防火墙直接拒绝
- 超时:网络阻断、连接队列满或实例卡住
- 认证失败:密码错误或账号权限不足
- 加载中:实例正在加载持久化文件,等待完成即可
- 连接数达上限:需要排查连接泄漏或扩容连接数
分层排查
分层排查
# 第一层:网络与端口
ping -c 3 10.0.0.5
redis-cli -h 10.0.0.5 -p 6379 -t 2 PING
nc -vz 10.0.0.5 6379
# 第二层:服务端视角
redis-cli INFO clients | grep -E "connected_clients|rejected_connections"
redis-cli CONFIG GET maxclients
redis-cli CONFIG GET bind protected-mode
# 第三层:日志
tail -100 /var/log/redis/redis-server.log现象与处理
| 现象 | 常见原因 | 处理动作 |
|---|---|---|
| 连接被拒绝 | 进程未启动、端口错、防火墙拒绝 | 查进程、监听端口与安全组 |
| 连接超时 | 网络阻断、等待队列满、实例卡住 | 查延迟指标与背压情况 |
| 认证失败 | 密码或账号配置不对 | 核对密码与账号权限 |
| 实例加载中 | 正在载入持久化文件 | 等待加载完成再重试 |
| 连接数达上限 | 连接泄漏或短连接过多 | 清理异常连接并评估容量 |
| 远程无法连接 | 监听地址限制或保护模式开启 | 核对绑定地址与保护模式配置 |
默认配置下实例只监听本机地址并开启保护模式:远程连不上时先核对这两项,再怀疑网络。
为排查方便临时放开监听地址与关闭保护模式后忘记改回:等于把实例暴露出去,必须列入变更回收清单。