服务异常时,最有用的第一步通常是保存现场。一次过早的重启,可能让短暂的症状消失,也让定位问题的线索消失。
确认观察的是同一个服务
记下机器、服务名称和发生时间,确认运行状态,再查看相关时间范围的日志。把“进程存在”和“服务可用”当成两个不同的问题:前者是状态,后者需要一次实际请求来验证。
# 将 example.service 换成实际服务名称
systemctl status example.service --no-pager
# 查看最近一小时的相关日志
journalctl -u example.service \
--since "1 hour ago" --no-pager
围绕时间线寻找变化
日志中的错误值得看,错误出现之前发生了什么同样值得看。配置发布、证书更新、磁盘空间变化和上游服务异常,都可以成为对照时间点。把日志与变更记录放在一起,比只搜索最后一条错误更容易还原过程。
让每次尝试都留下结果
记录修改前的状态、做过的改变和验证结果。如果没有改善,就回到原来的状态,再检验下一个假设。涉及生产服务时,准备可恢复的配置副本,并用服务自身的校验命令检查格式。
— END OF NOTE —
继续阅读其他手记 →