连接日志来源
将服务器和 CDN 日志接入 AI 爬虫追踪。
追踪代码片段只能上报在浏览器或你的服务器上实际运行到的请求,但许多 AI 机器人抓取页面时根本不执行 JavaScript。日志来源正好弥补这一缺口:连接你的 CDN 或服务器日志后,每一个与 AI 相关的请求都会被统计,并带有独立的来源标签,方便你区分来自日志的访问和来自代码片段的访问。
系统只存储与 AI 相关的请求。已知 AI 爬虫、疑似机器人的 User-Agent,以及由 AI 助手引荐的访问会被保留;其他所有流量在到达时即被丢弃,不会写入任何地方。验证层级对来自日志的访问同样适用,规则与代码片段访问完全一致。
所有日志来源都使用日志接入密钥进行身份验证。该密钥与你的追踪代码片段密钥相互独立,只能用于提交日志。下文提到的所有功能都在应用中的设置 → 连接 → 网站跟踪 → 服务器日志标签页内。
Cloudflare(一键部署)
对使用 Cloudflare 代理的网站来说,这是最快的方式。创建一个只包含以下三个权限的 API 令牌:Workers Scripts Edit、Zone Read 和 Workers Routes Edit。粘贴令牌和你的域名后,Citlyze 会在你的 zone 上部署一个小型 Worker,并把它挂载到你域名的路由上。
该 Worker 严格透传:它从不读取或修改请求或响应正文,任何内部错误都会直接放行请求,因此你的网站绝不会受到影响。它在响应返回之后才上报请求元数据(路径、状态码、User-Agent、IP、来源网址、国家/地区)。令牌仅在设置时使用一次,不会保存。
两点说明:
- 该路由仅对已开启代理(橙色云)的 DNS 记录生效。
- 在 Workers 免费套餐中,所有请求共享每日配额。开启预过滤选项后,Worker 只上报 AI User-Agent,可以节省配额,但在你重新部署 Worker 之前,新登记的爬虫不会被统计。
不想粘贴令牌?选择手动方式,Citlyze 会生成同样的 Worker 代码,由你自己粘贴到 Cloudflare 控制台。
对于流量极高的 zone,Cloudflare Logpush 更为合适:创建一个指向你的接入 URL 的 HTTP 目标,并在 URL 参数中以 key= 传入密钥,Citlyze 会以同样的方式过滤推送来的批次。
Vercel(log drain)
粘贴一个 Vercel 令牌,Citlyze 就会创建一个 log drain,自动持续传入请求日志。你可以把它限定到单个项目,也可以将项目留空以覆盖整个团队。令牌以加密方式保存,唯一用途是在你断开连接时移除该 log drain。数据接入本身使用嵌入在 drain URL 中的日志接入密钥进行身份验证。
通用 Webhook
任何能发送 JSON POST 请求的系统都可以接入日志。把日志分批发送到接入端点(每批最多 500 条),并在 X-API-Key 请求头中携带你的日志接入密钥。每条日志包含时间戳、方法、URL、状态码和 User-Agent,还可以附带客户端 IP、来源网址和国家/地区。完整的接口约定见日志接入 API 参考。
文件上传
如需一次性回填,可以把一段访问日志直接粘贴到“上传”标签页。支持两种格式:带表头行的 CSV(常见的 CDN 导出表头能自动识别)和 Apache/Nginx combined 日志格式。超过 30 天的条目会被跳过,处理摘要会告诉你解析、存储和丢弃了多少行。
重复上传同一个文件会被拒绝,因此回填数据不会被重复计算。
其他 CDN
CloudFront 和 Akamai 用户目前可以通过通用 Webhook 约定使用同一个端点:把 Lambda@Edge 函数、DataStream HTTPS 目标或任何日志转发工具指向接入 URL,并附上你的密钥即可。这些平台的原生一键接入将根据需求陆续推出。
解读结果
来自日志的访问会和代码片段访问一起,显示在相同的 AI 爬虫和 AI 流量视图中。公共 API 会在每一行标明来源,因此导出数据时可以区分代码片段看到的访问和日志看到的访问。
来自日志的访问带有真实的 HTTP 状态码,因此被抓取页面中的错误和重定向洞察也会用到这些数据。每个网站只使用一种来源:如果追踪代码片段和日志来源上报同一个域名,每次访问都会被计算两次;出现这种情况时,安装页面会提醒你。