日志和故障现场
先保存现场,再决定重启
date --iso-8601=seconds
uptime
systemctl --failed
pm2 list
df -h
free -h
journalctl -u nginx --since '30 minutes ago' --no-pager
连续重启可能清除瞬时状态、改变 PID、截断日志并掩盖根因。严重故障先记录时间线、版本、请求 ID、状态码、资源和相关日志。
分层查日志
- Nginx access log:请求是否到达、状态、耗时、upstream。
- Nginx error log:代理、证书、文件和连接错误。
- PM2/应用日志:业务错误、堆栈和请求 ID。
- systemd Journal:服务启动、退出和系统事件。
- MySQL/Redis 日志:连接、恢复、慢查询和持久化。
- 内核日志:OOM、磁盘和网络驱动异常。
journalctl -u myapp --since '2026-09-02 10:00' --until '2026-09-02 10:15'
tail -n 200 /var/log/nginx/error.log
避免直接载入数 GB 日志;先限制服务、时间和行数。日志要轮转,并对磁盘增长设置告警。
敏感信息
不得记录密码、私钥、完整 JWT、Cookie、数据库连接串或未经脱敏的个人数据。对外分享日志前再次脱敏。