Log Explorer 使您能够直接在 Cloudflare 仪表板或 API 中存储和探索 Cloudflare 日志,从而无需将日志转发给第三方服务即可了解日志内容。日志使用 R2 对象存储平台存储在 Cloudflare 的全球网络上,并可以通过仪表板或 SQL API 进行查询。
当您需要调查生产流量中实际发生的情况时,使用 Log Explorer:
- 分析历史数据和趋势
- 在安全事件发生后进行调查
- 在数千个请求中搜索模式
- 随时间监测应用程序性能
- 向支持团队提供取证证据
当您需要测试模拟请求会发生什么情况时,请使用 Trace:
- 了解规则为何未按预期触发
- 测试您的规则如何处理不同的请求场景
- 查看规则的评估顺序
- 模拟来自不同地理位置或条件的请求
其核心区别在于,Log Explorer 显示实际流量,而 Trace 显示模拟的“假设”场景。
您可以通过 Cloudflare 仪表板或 API 过滤和查看日志。
-
在 Cloudflare 仪表板中,前往 Log Explorer(日志浏览器)> **Log Search(日志搜索)**页面。
Go to Log search ↗ -
选择您要使用的 Dataset(数据集),并在 **Columns(列)**中选择数据集字段。如果您选择了区域范围的数据集,请选择您要使用的区域。
-
输入 Limit(限制数)。限制数是返回结果的最大数量,例如 50。
-
选择您要查询的 Time period(时间段),例如前 12 个小时。
-
选择 **Add filter(添加过滤器)**来创建您的查询。选择 Field(字段)、**Operator(运算符)**和 Value(值),然后选择 Apply(应用)。
-
系统会显示查询预览。选择 **Custom SQL(自定义 SQL)**可修改查询。
-
完成后,选择 Run query(运行查询)。结果将显示在下方的 **Query results(查询结果)**区域中。
例如,要使用特定的 Ray ID 查找 HTTP 请求,请前往 Custom SQL(自定义 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 query(保存查询)**将其保存。提供名称和描述,以便日后识别。要查看您保存的查询和最近的查询,选择 Queries(查询)—— 它们将显示在侧边栏面板中,您可以在其中插入新查询或删除任何查询。
您也可以直接从 安全分析仪表板 (Security Analytics dashboard) 访问 Log Explorer 仪表板。执行此操作时,您在安全分析中应用的过滤器将自动结转到您在 Log Explorer 中的查询中。
Log Explorer 支持的所有表都包含一个名为 date 的特殊列,该列有助于缩小为响应您的查询而扫描的数据量,从而缩短查询响应时间。date 的值必须采用 YYYY-MM-DD 格式。例如,要查询 2023 年 10 月 12 日发生的日志,请在 WHERE 子句中添加以下内容:date = '2023-10-12'。该列支持 <, >, 和 = 等标准运算符。
- 登录到 Cloudflare 仪表板 ↗ 并选择您的账户。
- 前往 Log Explorer > Log Search(日志搜索) > Custom SQL(自定义 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(*)来探测具有匹配记录的时间范围,而无需检索完整的数据集。