扫描(Scan)日志

更新时间:
复制 MD 格式

日志服务扫描(Scan)功能支持免配置索引进行目标字段的扫描,用于查询和分析相关日志。扫描功能包含扫描查询和扫描分析,本文介绍扫描功能的相关操作和示例。

前提条件

  • 已采集日志。具体操作,请参见数据采集

  • 已创建索引。具体操作,请参见创建索引

    重要

    扫描的目标字段无需配置索引,但查询语句仍依赖于索引。

操作步骤

  1. 登录日志服务控制台

  2. Project列表区域,单击目标Project。

  3. 日志存储 > 日志库页签中,单击目标Logstore。

  4. 在输入框中,输入扫描语句。

    扫描语句格式为查询语句 | SPL语句查询语句 | set session mode=scan; 分析语句(标准SQL)

  5. 在页面右上方设置扫描的时间范围。

    您可以设置相对时间、整点时间和自定义时间。 此处设置的扫描时间最小粒度为分钟。

自动扫描

重要

自动扫描和翻页功能仅适用于扫描查询操作。

执行一次扫描查询操作后,如果提示本次未扫描得到结果,您可以单击扫描图标,使系统自动扫描查询日志,直到返回符合扫描条件的日志或扫描次数达到20次。

自动扫描对话框中,将展示自动扫描的进展。

每条扫描记录包含扫描次序、当前扫描结果数、扫描进度百分比、处理时间戳及扫描状态(如扫描完成, 无结果)。

翻页说明

当您执行一次翻页操作时,日志服务会对应执行一次扫描查询操作,用于保证扫描结果的连续性。

每次默认最多扫描100,000条日志,在翻页过程中,可能出现某页中显示的日志数量少于每页显示对应的数量,但仍支持向后翻页。即表示当前查询的100,000条日志中,满足扫描条件的日志数量少于每页显示对应的数量。

例如日志总数为200,000条,每页支持显示20条,当您执行一次扫描操作后,只返回15条且向后翻页功能可用,此时说明前100,000条日志中只有15条日志满足扫描条件。您可以执行翻页操作,日志服务会自动在后100,000条日志中,执行第二次扫描操作,并返回符合条件的日志。

示例

  • 通过扫描功能查询请求状态为成功的请求对应的日志。

    • 扫描语句

      * | where Status='Success'
    • 扫描结果

      查询结果以 Scan 模式返回,扫描数据量 56.74 KiB,扫描进度 4.19%。直方图按时间展示日志分布,原始日志记录包含 AlertStatus(值为 inactive)、Condition(值为 Count:__count__ > 0; Condition:inflow > 27)等告警字段。

  • 通过扫描功能查询一个文件在一个时间点对应的日志。

    • 扫描语句

      * | where file = 'file:Android' | where time ='[2024-04-24T10:07:27.427014479]'
    • 扫描结果

      扫描模式下共扫描数据量 375.46 KiB,返回 2 条匹配日志,时间分别为 2024-04-24 10:38:13 和 2024-04-24 10:38:00,file 字段值为 /var/log/nginx/test.log

  • 通过扫描功能计算各个请求状态对应的请求数量。

    • 扫描语句

      说明

      扫描分析功能,需要在SQL前面加上set session mode=scan;,表示使用扫描模式

      * | set session mode=scan; SELECT Status, count(*) AS PV GROUP BY Status
    • 扫描结果

      扫描结果显示共扫描 470 行、数据量 1.29 MiB,查询结果表格中 Status 为 Success,PV 为 470。

API调用

您可以通过GetLogs接口使用扫描功能。更多信息,请参见查询日志库日志

重要

如果您要使用扫描功能,需要在query参数的分析语句中添加set session mode=scan;,表示开启扫描功能,例如* | set session mode=scan; select count(*) as pv