unUSP Notes关于网络、系统与简单的工程。
← 全部笔记

SYSTEMS / 系统运维 / NOTE 03

排查服务问题,从一份小清单开始

状态、时间、日志和变更记录:用有顺序的观察,减少没有依据的尝试。

服务异常时,最有用的第一步通常是保存现场。一次过早的重启,可能让短暂的症状消失,也让定位问题的线索消失。

确认观察的是同一个服务

记下机器、服务名称和发生时间,确认运行状态,再查看相关时间范围的日志。把“进程存在”和“服务可用”当成两个不同的问题:前者是状态,后者需要一次实际请求来验证。

# 将 example.service 换成实际服务名称
systemctl status example.service --no-pager

# 查看最近一小时的相关日志
journalctl -u example.service \
  --since "1 hour ago" --no-pager

围绕时间线寻找变化

日志中的错误值得看,错误出现之前发生了什么同样值得看。配置发布、证书更新、磁盘空间变化和上游服务异常,都可以成为对照时间点。把日志与变更记录放在一起,比只搜索最后一条错误更容易还原过程。

让每次尝试都留下结果

记录修改前的状态、做过的改变和验证结果。如果没有改善,就回到原来的状态,再检验下一个假设。涉及生产服务时,准备可恢复的配置副本,并用服务自身的校验命令检查格式。

继续阅读:systemd · journalctl 手册

— END OF NOTE —
继续阅读其他手记 →