服务器时区是 UTC access_log 按 UTC 记录 报表按北京时间解读 每天早八点的抓取高峰被算到前一天凌晨 和 GSC 曲线怎么也对不上 排查抓取异常时把时间线排错了两天

一开始怀疑是「分析脚本用本地时间解析字符串 没做转换」,查了一圈,方向不对。

把日志和配置对完,能解释这个现象的基本就这几处。日志时间戳是 UTC 报表按东八区聚合。还有一种是GSC 报表按站点时区展示 又差一层。

少数情况下是logrotate 按服务器时间切 跨时区对不上。

动手时先确认日志时间戳的时区

head -1 access.log

然后统计时显式加 8 小时

awk '{print $4}' access.log | cut -c2-17 | xargs -I{} date -d '{} UTC+8' +%F

接着把日志格式改成带时区偏移

log_format main '$time_iso8601 $remote_addr $request';

与 GSC 报表按同一时区对齐

python report.py --tz Asia/Shanghai

别只看报错消失,验证要多做一步。高峰时段与 GSC 曲线对齐 时间线不再前后错位 排查记录里的时间点能一一对应。

补一句。只要涉及跨系统对比 时间就必须带时区 只写 08:00 的日志等于没有时间。报错文案容易误导,真正的原因往往在相邻那一层的日志里。

作者 9823189