You need to enable JavaScript to run this app.
导航

从 TOS 导入日志

最近更新时间2024.01.18 09:58:32

首次发布时间2023.02.16 18:06:17

日志服务支持 TOS 数据导入功能,支持将 TOS 中存储的数据进行结构化,并保存在日志服务中。本文档介绍从 TOS 中导入数据到日志服务的操作步骤。

背景信息

在海量日志文件批量导入场景中,您可以将日志文件上传至对象存储 TOS 的桶中,并通过日志服务的日志导入功能将其结构化、导入并保存在日志服务中,实现日志数据的实时查询分析、二次加工处理。从 TOS 中导入数据时,支持将指定 Bucket 中的一个或多个对象中的数据全量导入到日志服务中,支持跨地域导入,即日志服务日志主题和数据源 Bucket 可以位于不同地域。创建导入任务后还可以在日志服务控制台中查看导入进度及状态信息,或通过服务日志分析查看进度和状态的详细数据。
此外,日志服务还会为导入的日志数据添加以下元数据字段:

字段

说明

__content__

原始日志数据。仅在日志提取类型单行全文时添加。

__path__

日志的源文件目录与文件名。

__source__

日志源所属存储桶的名称。

注意事项

从 TOS 导入数据功能的限制项如下:

限制

说明

导入性能

TOS 数据导入任务支持的最大处理速度为 80 MB/s。如果您需要提升任务处理速度,请通过工单系统沟通业务需求。

数据导入配置数量

单个日志项目中,最多可创建 100 个不同类型的数据导入配置。

单个文件大小

不同压缩模式下,文件大小限制不同。超过限制的文件不会被导入到日志服务中。

  • Snappy 压缩格式(非 Framing-format 格式):文件大小限制为 350MiB。
  • 其他压缩格式或未压缩:文件大小限制为 5GiB。

单条数据大小

单条日志最大长度为 512KiB,超出的日志会被截断丢弃;如果单条日志长度超过 2MiB,该条日志会被直接丢弃。

导入数据范围

仅支持全量导入,不支持增量导入。

  • 创建导入任务之后,即使桶中增加了符合导入规则的文件,日志服务也不会采集该增量内容。
  • 如果某文件有内容更新,且该文件尚未被采集,日志服务会采集变更后的文件版本。

桶类型

不支持低频存储类型的存储桶数据导入。

修改导入任务

创建日志导入任务后,不可修改任务的数据源配置等。如果配置错误,请删除配置后重新创建。

费用说明

从 TOS 导入数据涉及日志服务和对象存储的读流量、写流量等计费项。具体的价格信息请参考日志服务计费项和对象存储计费概述

收费侧

计费项

说明

对象存储

私网流出流量

从 TOS 读取数据时走火山引擎私网,会产生私网流出流量。

请求次数

从 TOS 读取数据时,根据不同存储类型的请求次数进行计费。

日志服务

写流量

TOS 数据写入到日志服务中,在日志服务中涉及写流量费用。流量费用根据压缩后的数据量进行计费。

日志存储

日志保存到日志服务后,后端会自动对其进行压缩,存储费用以压缩后的实际大小为准。

其他

  • 推荐为已导入的数据开启索引,便于后续的查询分析与数据统计。开启索引后会产生索引存储费用。按照压缩前的日志数据被建立的索引所占用的存储空间计费。
  • 已导入的数据如果后续产生数据读取、数据加工、数据投递等操作,则按照计费标准进行收费。

前提条件

  • 已上传日志文件到 TOS 的存储桶中。具体操作步骤请参考上传日志
  • 已创建日志项目和日志主题。具体操作步骤请参考创建资源
  • 首次使用日志导入或日志投递功能之前,需要完成云资源访问授权,即授予日志服务产品访问并写入资源的权限。如果尚未授权,日志服务会在控制台创建日志导入任务时引导您进行操作,推荐使用火山引擎主账号进行授权,相关说明请参考跨服务访问授权

创建导入任务

步骤一 初始配置

  1. 登录日志服务控制台

  2. 在顶部导航栏中选择日志服务所在的地域。

  3. 在左侧导航栏中选择日志服务 > 日志项目管理,并单击指定的日志项目名称。

  4. 在左侧导航栏中单击日志接入

  5. 数据导入区域选择火山引擎对象存储TOS

  6. 填写初始配置

    配置

    说明

    导入类型

    日志导入任务的类型,默认为从TOS导入

    日志项目

    用于保存 TOS 数据的日志项目名称。

    日志主题名称

    用于保存 TOS 数据的日志主题名称。

    说明

    云产品日志、服务日志等日志的专属日志主题不支持导入数据。

    任务名称

    日志导入任务的名称。需满足以下要求:

    • 长度为 3~63 个字符。
    • 只支持小写字母、中文、数字和连字符(-)。
    • 必须以小写字母、中文、数字开头或结尾。

步骤二 数据源配置

  1. 填写数据源配置

    配置

    说明

    存储桶所在地域

    TOS 存储桶所在的地域。支持跨地域导入数据。

    存储桶

    日志文件所在的 TOS 存储桶。

    选择文件路径

    待导入的文件在 TOS 存储桶中的路径。

    • 选择文件路径:在下拉列表中直接选择路径或文件。
    • 手动输入路径:输入文件前缀或文件完整路径。例如指定文件前缀为 accesslog/,表示导入目录 accesslog/ 下的所有文件。

    说明

    • 文件前缀不支持通配符。
    • 路径设置为空时表示导入该存储桶中的全部文件。如果存储桶中文件较多,遍历存储桶可能导致数据导入的效率低。

    压缩模式

    TOS 存储桶中数据的压缩模式。日志服务支持导入以下压缩模式的数据。

    • 无压缩
    • snappy
    • gzip
    • lz4
    • tar.gz

    说明

    设置为 lz4 前,应确认数据源使用 LZ4Frame 压缩,否则可能导致导入时解压失败。

  2. 单击预览来预览待导入的文件内容,并单击下一步
    填写数据源配置之后,日志服务提供指定数据源的数据预览功能,您可以查看预览区域中的数据是否与待导入的数据相同。如果数据不同,表示数据源配置不正确,建议重新设置。

步骤三 日志提取模式配置

  1. 填写日志提取模式配置,并单击提交

    配置

    说明

    日志提取类型

    日志服务解析日志字段的方式,支持设置为单行全文JSONCSV

    • 单行全文:采集时以\n作为一条日志的结束符,每条日志存在一个默认的键值 __content__,日志数据本身不再进行结构化处理,日志属性的时间项由日志采集的时间决定。
    • JSON: 按照 JSON 格式将日志提取为多个 key-value 的键值对。Object 首层的键(Key)作为字段名称,Object 首层的值(Value)作为字段值,\n 作为一条日志的结束符。日志属性的时间项由日志采集的时间决定。
    • CSV:采集时以\n作为一条日志的结束符,每条日志数据可以根据指定的分隔符将整条日志进行结构化处理。日志属性的时间项由日志采集的时间决定。 此时需要额外填写其他参数,详细说明请参考下表。

    上传解析失败日志

    是否上传解析失败的日志,默认为开启状态。

    • 开启:所有解析失败的日志,均以指定字段作为键名称(Key),原始日志内容作为值(Value)上传到日志服务。此时需要通过失败日志键名称指定解析失败的日志对应的字段名称。
    • 关闭:解析失败的日志不上传到日志服务。

    图片

    指定时间字段

    是否用指定字段作为日志时间。默认情况下,日志服务采用数据导入时的系统时间作为日志时间。您也可以开启指定时间字段设置,开启后需要指定数据源中表示时间的列名,日志服务会用该字段值作为日志时间。
    开启时,应同时指定以下配置:

    • 时间字段名称:时间字段的 Key。
    • 时间字段格式:时间字段的格式,用于解析时间字段的 Value。支持的时间格式设置请参考时间格式,例如时间字段内容为 1651648409,则可配置时间字段格式为 %s;时间字段内容为 1651648416882,则可配置时间字段格式为 %F;时间字段内容为 2022-01-01T15:30:00.999+0800,则可配置时间字段格式为 %Y-%m-%dT%H:%M:%S.%f%z
    • 提取时间正则:当您选择日志提取类型单行全文时,需要使用正则表达式提取日志中的时间。当您选择日志提取类型为 CSV **** 或 JSON **** 且需提取时间字段中的部分内容时,也可以使用正则表达式进行提取。
    • 时区:设置时区。支持选择 GMT 或 UTC 。

      说明

      如果要支持夏令时或冬令时,请选择 UTC;否则,请选择 GMT。

    插件配置

    从 TOS 导入日志时,如果业务日志结构复杂、格式不固定,无法通过日志提取类型中提供的常规日志采集模式进行解析时,可以通过 LogCollector 插件进行采集后处理。详细说明请参考插件概述
    以下示例表示为原始日志添加 path 字段:

    {
      "processors": [
        {
          "add_kvs": {
            "fields": {
              "path": "${PATH}"
            }
          }
        }
      ]
    }
    

    日志提取类型设置为 CSV 时,还需要额外设置以下参数:

    参数

    说明

    分隔符

    日志数据中,不同字段之间的分隔符。根据日志格式选择正确的分隔符,确保每个字段都能被准确提取。日志服务支持配置多种常见的分隔符,例如空格、逗号等。
    如果您的日志数据所采用的分隔符不在选项中,也可以将分隔符指定为自定义,并在自定义分隔符中填写对应的分隔符。

    说明

    • 暂不支持将分隔符设置为不可见字符。
    • 只能指定一个分隔符,但分隔符中可以包含多个字符,例如双冒号(::)。

    引用符

    如果日志字段值中包含分隔符,则需要在日志中使用指定的引用符包裹整个字段值,否则日志内容将会被分隔符误拆分。指定分隔符和引用符之后,被引用符中包裹的内容会被日志服务解析为一个完整的字段,无论其中是否包含分隔符。
    例如原始日志为 20220511 debug "parse meet error",分隔符为空格。则:

    • 如果未设置引用符,日志会被分割为 key1: 20220511、key2: debug、key3: "parse、key4: meet、key5: error"。
    • 如果设置引用符为双引号,日志会被分割为 key1: 20220511、key2: debug、key3: "parse meet error"。

    引用符支持设置为不配置半角单引号半角双引号自定义字符。如果选择自定义字符,则需要设置自定义引用符

    说明

    • 暂不支持将引用符设置为不可见字符。
    • 如果某些字段值中包含引用符,可以使用转义符(\)对此字符进行转义,转义后的引用符会被视为普通文本内容。例如引用符为双引号,但是日志内容 2022"0511" 中包含双引号,可以使用2022\"0511\"进行转义。
    • 只能指定一个引用符,但引用符中可以包含多个字符,例如双冒号(::)。

    日志样例

    输入真实的日志样例,并单击提取Value

    提取结果

    日志服务会根据日志样例及指定的分隔符解析日志,并提取日志字段。请为不同的日志字段指定不同的 key。

    说明

    • key 不可重复。
    • 未指定 key 的字段,不会被采集并存储到日志服务中。
  2. 确认配置后,单击下一步

步骤四 检查索引配置

  1. 检查索引配置。
    根据页面提示,按需设置或更新索引。索引默认为关闭状态,启用索引后才能检索分析采集到的日志数据。
    • 若此日志主题未设置索引,可以参考文档配置索引进行设置。
    • 若此日志主题已设置索引,可以根据采集规则中解析的日志字段判断是否需要更新索引。

    说明

    更新后的索引设置仅对后续写入的新数据生效。其他检索分析的使用说明及限制请参考检索概述分析概述

  2. 单击提交

查看导入任务

成功创建 TOS 数据导入任务之后,您可以在日志服务控制台中查看相关信息,包括导入配置的配置详情及数据导入的进度数据。

查看配置详情

  1. 登录日志服务控制台
  2. 在顶部导航栏中选择日志服务所在的地域。
  3. 在左侧导航栏中选择日志服务 > 日志项目管理,并单击指定的日志项目名称。
  4. 在左侧导航栏中单击日志接入
  5. 数据导入页签中的任务列表区域,单击日志导入任务名称。
  6. 配置详情页签中,查看任务的配置信息。
    可查看导入任务的基本信息、数据源配置及日志提取模式。
    图片

查看导入进度

导入任务信息页签中展示导入任务的状态及进度信息,详细说明如下:

展示项

说明

导入任务状态

当前导入任务的状态,详细状态说明请参考下表。

导入进度

当前任务的导入进度,计算方式为导入进度=(已导入资源数量+跳过资源数量+失败资源数量+不存在资源数量)/ 总资源数量

总资源个数

日志服务检测到的 TOS 存储桶中符合过导入规则的文件数量。

已导入资源个数

日志服务已导入的文件数量。

已列举到资源大小

日志服务检测到的 TOS 存储桶中符合过导入规则的文件大小,单位为 GiB。

已导入的资源大小

日志服务已导入的文件大小,单位为 GiB。

不存在资源个数

因导入过程中文件删除等原因,导致日志服务未能查找到的文件数量。

跳过导入资源个数

因资源类型不匹配、文件无法解压或读取等问题,日志服务直接跳过、未导入的文件数量。

失败资源个数

日志服务导入失败的文件数量。

导入任务状态说明如下:

状态

说明

导入中

导入任务执行中。您可以通过导入进度判断当前的任务执行进度。

导入完成

导入任务已执行完毕。符合导入规则的所有可导入文件已被成功导入到日志服务的指定日志主题中。

导入异常

导入任务异常。任一文件导入失败都会导致整个任务的异常状态,例如文件解压方式错误、数据异常等原因引起的文件导入失败。建议处理异常问题之后,重新导入问题文件。
此外,您可以通过服务日志查看问题文件的详细信息,日志字段请参考 TOS 数据导入错误日志

删除导入任务

如果数据导入任务遇到了故障或异常,您可以删除故障的导入任务,重新导入数据。如果已完成存量日志数据的迁移,或者不再需要导入日志到火山引擎日志服务,您可以参考以下步骤删除日志导入任务。

说明

  • 删除日志导入任务不影响已成功导入的日志数据。
  • 删除日志导入任务之后不可恢复,请谨慎操作。
  1. 登录日志服务控制台
  2. 在顶部导航栏中选择日志服务所在的地域。
  3. 在左侧导航栏中选择日志服务 > 日志项目管理,并单击指定的日志项目名称。
  4. 在左侧导航栏中单击日志接入
  5. 任务列表区域的数据导入页签中找到需要删除的日志导入任务,并在其对应的操作列单击删除
  6. 在弹出对话框中确认待删除的任务信息,并单击确定