Log Explorer(旧版)使你能够直接在 Cloudflare 仪表板或 API 中存储和探索 Cloudflare 日志,从而无需将日志转发给第三方服务即可了解日志内容。日志使用 R2 对象存储平台存储在 Cloudflare 的全球网络上,并可以通过仪表板或 SQL API 进行查询。
需要调查真实生产流量中实际发生的情况时,请使用 Log Explorer:
- 分析历史数据和趋势
- 在安全事件发生后进行调查
- 在数千个请求中搜索模式
- 随时间监测应用程序性能
- 向支持团队提供取证证据
需要测试模拟请求将发生什么时,请使用 Rules simulator;它在仪表板中显示为 Rule simulator:
- 了解规则为何未按预期触发
- 测试规则如何处理不同的请求场景
- 查看规则的评估顺序
- 模拟来自不同地理位置或条件的请求
核心区别在于:Log Explorer 显示实际流量,而 Cloudflare Trace 显示模拟的“假设”场景。这两者都不同于 Cloudflare Traces,后者记录真实请求如何经过 Cloudflare。
你可以通过 Cloudflare 仪表板或 API 过滤和查看日志。
-
在 Cloudflare 仪表板中,前往 Observability > Logs。
前往 Logs(日志) ↗ -
打开数据集选择器,选择一个 Log Explorer 数据集,例如 HTTP requests(HTTP 请求)。对于 zone 范围的数据集,选择单个域名或全部域名。
-
选择预设或自定义时间范围。
-
通过选择字段、运算符和值来添加过滤器。若要改写 SQL,请选择 Open SQL editor(打开 SQL 编辑器),针对所选数据集输入查询,然后选择 Run query(运行查询)。
SQL 查询仅适用于 Log Explorer 数据集。有关过滤器查询语言、函数和键盘快捷键,请参阅 Logs 页面上的内置参考或日志概览。
例如,要使用特定的 Ray ID 查找 HTTP 请求,请打开 SQL 编辑器并输入以下 SQL 查询:
SELECT
clientRequestScheme,
clientRequestHost,
clientRequestMethod,
edgeResponseStatus,
clientRequestUserAgent
FROM http_requests
WHERE RayID = '806c30a3cec56817'
LIMIT 1作为另一个示例,要在特定时间段内查找具有所选列的 Cloudflare Access 请求,你可以执行以下 SQL 查询:
SELECT
CreatedAt,
AppDomain,
AppUUID,
Action,
Allowed,
Country,
RayID,
Email,
IPAddress,
UserUID
FROM access_requests
WHERE Date >= '2025-02-06' AND Date <= '2025-02-06' AND CreatedAt >= '2025-02-06T12:28:39Z' AND CreatedAt <= '2025-02-06T12:58:39Z'要查询请求标头、响应标头和 Cookie,你必须首先使用自定义字段为这些字段启用日志记录。使用 API 或仪表板配置自定义字段列表;无需修改 Logpush 作业本身。
下面的示例展示了如何按日期、时间戳、客户端国家/地区和自定义请求标头来查询 HTTP 请求。请确保提前记录你计划查询的特定标头或 Cookie。
SELECT clientip, clientrequesthost, clientrequestmethod, edgeendtimestamp, edgestarttimestamp, rayid, clientcountry, requestheaders
FROM http_requests
WHERE Date >= '2025-07-17'
AND Date <= '2025-07-17'
AND edgeendtimestamp >= '2025-07-17T07:54:19Z'
AND edgeendtimestamp <= '2025-07-18T07:54:19Z'
AND clientcountry = 'us'
AND requestheaders."x-test-header" like '%654AM%';构建查询后,可以通过选择 Save search(保存搜索) 将其保存。提供名称和描述,以便日后识别。要查看已保存的搜索,选择 Saved searches(已保存搜索)。在之前的 Log Search 页面中保存的查询会作为已保存搜索出现在 Logs 页面上。
你也可以直接从安全分析仪表板打开 Log Search。执行此操作时,你在安全分析中应用的过滤器将自动带到查询中。
所有 Log Explorer 数据集都包含一个名为 date 的特殊列,该列有助于缩小为响应查询而扫描的数据量,从而缩短查询响应时间。date 的值必须采用 YYYY-MM-DD 格式。例如,要查询 2023 年 10 月 12 日发生的日志,请在 WHERE 子句中添加以下内容:date = '2023-10-12'。该列支持 <、> 和 = 等标准运算符。
- 登录到 Cloudflare 仪表板 ↗ 并选择你的账户。
- 前往 Observability > Logs,选择一个 Log Explorer 数据集,然后选择 Open SQL editor(打开 SQL 编辑器)。
- 输入以下 SQL 查询:
SELECT
clientip,
clientrequesthost,
clientrequestmethod,
clientrequesturi,
edgeendtimestamp,
edgeresponsestatus,
originresponsestatus,
edgestarttimestamp,
rayid,
clientcountry,
clientrequestpath,
date
FROM
http_requests
WHERE
date = '2023-10-12' LIMIT 500- 缩小查询时间范围。专注于更小的时间窗口,以减少处理的数据量。这有助于避免查询过量的数据并加快响应速度。
- 省略
ORDER BY和LIMIT子句。这些子句会减慢查询速度,在处理大型数据集时尤为明显。对于返回大量记录的查询,请缩短时间范围,而不是在更宽的时间范围内限制最新的N条记录。 - 仅选择必需的列。例如,将
SELECT *替换为你需要的特定列列表。你也可以将SELECT RayId作为第一步迭代,然后通过过滤 Ray ID 的查询来检索其他列。此外,你可以使用SELECT COUNT(*)来探测具有匹配记录的时间范围,而无需检索完整的数据集。