下载日志

日志服务支持将日志或查询分析结果下载到本地,本文介绍下载方式及操作步骤。

下载方式说明

日志服务提供控制台、Cloud Shell、日志服务CLI或SDK下载方式下载日志或查询分析结果。

重要
  • 日志服务CLI或SDK下载方式无数量限制,但可能由于网络等不确定因素,出现下载中断问题。

  • 仅控制台方式支持压缩下载。

  • 若当前Logstore的计费模式为按写入数据量计费时,下载查询和分析结果(SQL结果)时不产生费用。具体内容,可参见按写入数据量计费

  • 若当前Logstore的计费模式为按使用功能计费时,下载查询和分析结果(SQL结果)时,会使用SQL独享版,因此会产生SQL独享版相关的费用。费用说明,请参见按使用功能计费模式计费项

比较项

通过控制台直接下载(推荐)

通过命令行工具(CLI)下载

通过Cloud Shell下载

通过SDK下载

数据量限制

  • 仅查询:华东1(杭州)、华东2(上海)、华北2(北京)、华南1(深圳)和新加坡地域最多支持下载2000万行数据,其他地域最多支持下载100万行数据。数据量不超过20 GB。

  • SQL分析:最多支持下载100万行数据。数据量不超过2GB。

  • 仅查询:无限制

  • SQL分析:最多支持下载100万行数据,数据量不超过2GB。

  • 仅查询:无限制

  • SQL分析:最多支持下载100万行数据,数据量不超过2 GB。

  • 仅查询:无限制

  • SQL分析:最多支持下载100万行数据,数据量不超过2 GB。

依赖部署

手动安装日志服务CLI。

自动部署,首次运行时需要等待初始化。

手动安装日志服务 SDK,并需要自定义代码。

授权

同控制台查询权限,无需额外授权。

手动配置

自动配置

手动配置

SQL独享版

下载SQL分析结果时,使用SQL独享版

不使用

不使用

按实际需求,设置参数配置。

外网读取流量

部署在与Project相同地域的ECS上且使用日志服务私网域名时,不会产生外网读取流量费用。

当Project在华东2(上海)地域时,不会产生外网读取流量费用。

部署在与Project相同地域的ECS上且使用日志服务私网域名时,不会产生外网读取流量费用。

NAS集成

必要时,手动配置

自动配置

必要时,手动配置

您也可以将日志投递到OSS,通过OSS进行下载。关于投递的具体操作,请参见创建OSS投递任务(新版)

操作步骤

通过控制台直接下载

日志服务支持通过控制台直接将日志或查询分析结果下载到本地,两者的下载操作类似,本文以下载日志为例进行说明。如果您要下载查询分析结果,可在执行查询分析操作后,在统计图表页签中,单击下载查询分析结果

重要
  • 超过单次下载的最大数量时,仅下载最大支持的数量。如果您需要下载全量日志,可缩小查询的时间范围,分多次下载。

    您可以在日志导出历史中,查看下载列表。

  • 单个阿里云账号最多支持3个并发下载操作(总下载次数无限制)。超出3个并发下载操作或多个RAM账号同时操作时,可能报错,此时您可等待其他操作完成后,再重试。

  • 支持保存最近1天内的导出记录,超过1天的导出记录被自动清除。

  • 在遇到网络错误或者查询不精确时,系统会自动重试下载任务。如果重试3次后,仍无法完成下载,则下载任务为失败状态。

  1. 登录日志服务控制台

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

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

  4. 输入查询语句,然后选择时间范围。

    更多信息,请参见查询和分析日志

  5. 原始日志页签中,选择下载日志 > 下载日志image

    说明

    无日志时,下载日志不可用。

  6. 日志下载对话框中,完成如下配置,然后单击确认

    参数

    说明

    任务名

    下载任务的名称。

    日志数量

    选择要下载的日志数量。

    数据格式

    支持CSV格式和JSON格式。

    • 采用CSV格式时,文件中的列名将根据前100条日志的字段生成。如果后续日志存在新的字段,则所有新的字段将以JSON格式存放在CSV文件的最后一列(列名为空)。

    • 采用JSON格式时,单条日志的内容会转换为JSON格式,然后以单行形式写入文件。

    quote字符

    选择Quote字符,用于包裹日志中的特殊字符,避免被转义。

    是否允许下载不精确的结果

    如果选择,则当出现查询结果不精确时,会导致下载失败。

    压缩方式

    支持gzip、lz4、zstd等压缩方式,也支持不压缩。

    当下载的日志数量较多时,强烈建议采用压缩方式,可显著降低下载量,减少文件的下载时间。

    排序规则

    日志的排序规则。

  7. 下载任务对话框中,等待任务状态任务成功后,单击下载,将日志下载到本地。

    您也可以在原始日志页签中,选择下载日志 > 下载任务,打开下载任务对话框,查看下载记录。

通过Cloud Shell下载

目前Cloud Shell位于上海地域,如果当前Logstore不在上海地域,下载日志会产生一定的外网读取流量费用。价格详情请参见产品定价。操作步骤,参见使用Cloud Shell下载日志数据

通过命令行工具下载

当您需要下载更大数量的日志时,可以通过命令行工具进行下载。

  1. 安装命令行工具。具体操作,请参见安装CLI

  2. 获取当前账号的AccessKey。具体操作,请参见访问密钥

  3. 获取下载日志的命令。具体步骤,请参见get_log_all

    例如:在命令行工具中执行下载命令,执行成功后自动下载到运行命令行的当前目录下的downloaded_data.txt

    aliyunlog log get_log_all --project="aliyun-test-project" --logstore="aliyun-test-logstore" --from_time="2024-07-01 15:33:00+8:00" --to_time="2024-07-09 15:23:00+8:00"  --query="status:200|select request_method as method,COUNT(*) as pv group by method order by pv" --region-endpoint="cn-hangzhou.log.aliyuncs.com" --format-output=json --access-id="LT***CyGg" --access-key="8P***zi" >> ./downloaded_data.txt

更多信息,请参见使用日志服务CLI

通过SDK下载

当您需要下载更大数量的日志时,可通过SDK下载。

说明

SDK下载日志接口就是查询日志的接口。

Python SDK示例如下:

import os
import time

from aliyun.log import LogClient
from aliyun.log import GetLogsRequest

# 日志服务的服务接入点。
endpoint = 'cn-qingdao.log.aliyuncs.com'
# 本示例从环境变量中获取AccessKey ID和AccessKey Secret。
accessKeyId = os.environ.get('ALIBABA_CLOUD_ACCESS_KEY_ID', '')
accessKey = os.environ.get('ALIBABA_CLOUD_ACCESS_KEY_SECRET', '')
# Project名称。
project = 'Project名称'
# Logstore名称。
logstore = 'Logstore名称'
client = LogClient(endpoint, accessKeyId, accessKey)
request = GetLogsRequest("project1", "logstore1", fromTime=int(time()-3600), toTime=int(time()), topic='', query="*", line=100, offset=0, reverse=False)
# 或者
# request = GetLogsRequest("project1", "logstore1", fromTime="2018-1-1 10:10:10", toTime="2018-1-1 10:20:10", topic='', query="*", line=100, offset=0, reverse=False)


res = client.get_logs(request)
res.log_print()

更多信息,请参见SDK参考概述