网站日志存在哪:
站没服务器,出事该向谁要?
记录不在你的服务器上,在平台账号里。账号是谁注册的,决定你能查到什么、能查多久。
你的站没有服务器,也没有一台机器在替你记日志。记录其实还在,只是不在你手上:在 CDN 账号里、在表单那个函数里、在平台后台一个只能往前翻几天的窗口里。
所以「出事查日志」这件事,对外贸站来说变成了一个采购问题。你能查什么,取决于账号是谁注册的、留存开了几天。
一、站没服务器,日志为什么还有?
请求进来,先落到离客户最近的那个节点。节点把活干完,会写一行记录:时间、IP、要的路径、返回的状态码、浏览器、缓存有没有命中。你不需要装任何东西,这行账是平台自己记的。
命中缓存和回源,记的不是一回事
静态页命中缓存,节点直接把文件吐出去,回源那一栏是空的。没命中,节点去源站取一次,日志里多出回源耗时和源站状态码两个字段。
这两个字段分开看才有用。客户说慢,边缘耗时 40 毫秒、回源 2 秒,问题在源站;两个都慢,问题在客户那一跳的网络。混在一起看,只能得出「有点慢」。
表单那条请求,走的是另一本账
静态站的表单一般由一个函数接住。函数每被调用一次,平台记一条调用日志,里面带请求、响应和这次调用的耗时。表单收不到,先翻这本账,别先怀疑邮箱。
记录归谁,是个采购问题
这行日志存在平台账号下,不跟着域名走。域名是你的,账号是服务商注册的,你就看不到。要,也只能要截图。
我们交付的站,账号注册在客户公司邮箱下,我们加一个只读成员进去。合作结束那天把成员删掉,站和记录都还在你手里。这条我们做到了,但也得说清:只读成员只能在面板里翻,要导原始文件,得账号主自己开。
二、日志里真正值得看的,是哪三类?
一个站一天几万条请求,全翻是翻不完的。按症状去捞,三类够用。
| 客户的症状 | 日志里长什么样 | 多半是谁的问题 |
|---|---|---|
| 「你们那个产品页打不开了」 | 路径集中在旧链接,状态码 404 | 改版时漏了 301 |
| 「打开一半白屏」 | 520 / 522 / 524,回源状态码是空的 | 源站挂了,或者超时 |
| 「表单提交了没反应」 | POST 到表单接口,返回 403 或 413 | WAF 拦了,或附件超限 |
404 扎堆,通常是搬家没搬干净
正常站的 404 是散的:爬虫试探、客户手打错网址。一天里同一个前缀出现几十上百条 404,基本是旧链接没做跳转。按路径排序,看前十个,漏掉哪一批一眼就出来。
52x 和 5xx,先看回源那一栏
52x 是边缘连不上源站。日志里 OriginResponseStatus 是空的,说明请求根本没到源站。OriginResponseDurationMs 从几十毫秒跳到几秒,说明到了但慢。这两种要修的地方完全不同,一个是源站活着没有,一个是源站扛不扛得住。
表单 403,先看是谁拦的
403 有三个来源:WAF 规则、函数的鉴权、源站自己的权限。SecurityAction 有值就是 WAF 拦的,WorkerStatus 报错就是函数自己抛的。413 更直接,附件超过了请求体上限。
三、免费版的日志,能留几天?
这是最容易被忽略、出事时也最要命的一条。Cloudflare 的函数日志,免费额度是每天 20 万条、留 3 天;付费是每月 2000 万条、留 7 天。官方文档的限额表写得很直白:
“Maximum log retention period 7 Days”
Workers Logs 文档限额表里的最长保留期:7 天,单条日志上限 256 KB。也就是说,这周三出的问题,下周四再去查,记录已经没了。
Cloudflare Docs · Workers Logs 限额
想留一年,只有一条路:把日志推到你自己的存储里。这个功能叫 Logpush,能推到对象存储、SIEM、日志平台。它有个硬限制:
“Logpush only pushes logs once as they become available and cannot backfill historical data. If your job is disabled or fails, logs generated during that period are permanently lost.”
官方原文:日志只在产生时推一次,不能补历史;任务停过或失败过,那段时间的记录永久丢失。所以推日志这件事本身也要有人盯,推失败了没人知道,等于没开。
Cloudflare Docs · Logpush
要不要上,先算量。官方估算一条 HTTP 请求记录 1.5–3 KB,10 万次请求一天约 150–300 MB,压缩后大约是未压缩的十分之一。一年几十 GB,对象存储扛得住,成本不是零,但也不是大头。
说句实话:日请求不到 10 万次的站,先别折腾 Logpush。把面板看懂、把 5xx 每天扫一眼,比存一年日志有用。
四、出事了再去要日志,来得及吗?
多数来不及。
客户打电话说「上周三有个客户填了表单,我们没收到」。这时候去翻日志,窗口常常已经过了 7 天。剩下能做的只有猜:是不是进了垃圾箱、是不是被 WAF 拦了、是不是对方没点提交。猜完改一通,下次照旧。
换个问法,效率差很多。
| 这么问,基本查不出 | 这么问,十分钟能定位 |
|---|---|
| 「表单最近收不到,帮我看看」 没有日期、没有接口、没有状态码,窗口还过了 |
「10 月 28 日下午那批 POST /api/inquiry,把状态码和 UA 拉出来」 有日期、有接口、有筛选条件,捞得出来 |
平时做一件小事,出事时能省半天:表单提交成功和失败各写一条固定格式的日志,带上询盘编号。查的时候按编号捞,一条线索走到底。
五、日志、GA4、Clarity,三个数为什么对不上?
同一个站,日志说今天 1 万次请求,GA4 说 6000 个页面浏览,Clarity 又是另一个数。这不是谁算错了。三个工具记的东西本来就不一样。
| 数据源 | 记的是什么 | 漏掉什么 |
|---|---|---|
| 访问日志 | 每一个请求,含页面、图片、CSS、爬虫、扫描器 | 看不出人有没有读内容 |
| GA4 | JS 跑起来之后的浏览和事件 | 被拦的请求、没执行 JS 的、机器人 |
| Clarity | 抽样录屏与会话行为 | 有配额和保留期,样本不是全量 |
判据很简单:查「有没有人来、被谁挡在门外」看日志;查「人来了在页面上干了什么」看行为工具。两个都看,才分得清是没人来,还是来了留不住。
六、日志这件事,合同里怎么写?
- 账号在你名下。域名解析、CDN、函数,注册邮箱用公司邮箱,别用服务商的。
- 只给只读权限。服务商要排障,加成员就够,不给主账号密码。
- 留存天数写清。出事 24 小时内给原始文件,csv 或 json,不接受截图。
- 交接要能带走。合作结束时导出最近 90 天的记录,格式你自己打得开。
四条里最常被跳过的是第二条。不是服务商非要主账号,是图省事,改个 DNS 记录也登你的号。省下来的十分钟,换来的是你永远不知道谁动过什么。
七、自己先看一眼,看哪三处?
不用等谁给你开权限,三件事你自己就能做。
# 1. 缓存命中:HIT 说明节点直接回了
curl -sI https://你的域名/ | grep -i "cf-cache-status"
# 2. 实时看函数日志,提交一次表单就能看到调用
npx wrangler tail --format pretty
# 3. 单次请求的定位号,报障时报这个最快
curl -sI https://你的域名/ | grep -i "cf-ray"
cf-cache-status 的几个值:HIT 命中,MISS 没命中但可缓存,DYNAMIC 不缓存,EXPIRED 过期重取。静态页大面积 DYNAMIC,说明缓存规则没生效,先修规则,别急着换服务器。
cf-ray 是每个请求的唯一编号。客户报障时让他把这个号发过来,平台支持能直接定位到那一次请求,比「大概下午三点」准得多。
八、日志能证明什么,不能证明什么?
能证明的:请求到没到、被谁挡的、回源成没成、哪一跳慢。这些都是事实,能写进报告,也能拿去和服务商对。
不能证明的:客户为什么没下单。日志里没有「他觉得贵」这一条。页面慢 2 秒会赶走一部分人,但走了多少,日志答不了,得靠行为数据和你的业务判断。
说清边界:我们自己也只在两种时候翻日志,客户报障,和每周扫一遍 5xx。天天盯着面板看,除了增加焦虑没别的作用。
常见问题
Q1静态站没有服务器,日志到底存在哪?
存在边缘平台的账号下,不跟域名走。域名是你的、账号是服务商注册的,你就只能看截图。交付时把账号注册在自己公司邮箱下,再给服务商加只读成员,合作结束删成员即可。
Q2日志能留多久?出事了再查来得及吗?
免费的函数日志留 3 天、每天 20 万条,付费留 7 天。报障通常隔几天才提,出事再去要,窗口常常已经过了。要长期留存,只能把日志推到自己名下的存储里。
Q3日志里先看哪几行?
按症状捞三类:路径扎堆的 404(改版漏了 301)、52x 且回源状态码为空(源站连不上)、表单接口返回 403 或 413(被 WAF 拦或附件超限)。其余的先不看,看不完。
Q4日志和 GA4 数字对不上,是统计坏了吗?
正常。日志记每个请求,含图片、爬虫、被拦掉的;GA4 只记 JS 跑起来之后的浏览。查「有没有人来、被谁挡了」看日志,查「人来了做什么」看行为工具。
资料来源
- Cloudflare Docs · Workers Logs(函数日志的开启方式与限额表,含「最长保留 7 天」原文)
- Cloudflare Docs · Logpush(推送机制、不可回补历史、量级估算与计费方式)
- Cloudflare Docs · HTTP requests 数据集(本文提到的字段清单:请求路径、状态码、缓存状态、回源耗时、安全动作)