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

从 SLS 导入日志

最近更新时间2024.03.28 10:17:47

首次发布时间2022.11.18 10:32:18

火山引擎日志服务提供多种跨服务的数据迁移方案,支持从阿里云日志服务 SLS 消费指定时间范围的日志,导出结构化的日志数据,写入火山引擎日志服务。

背景信息

在跨服务数据迁移、主备切换、日志存档等场景中,需要从阿里云日志服务 SLS 消费已采集的日志数据,并写入到火山引擎日志服务中,以供日志查询分析、消费或长期归档。从 SLS 导入日志时,火山引擎日志服务通过 SLS 提供的消费组消费功能拉取并消费 SLS 中的日志数据,并通过 PutLogs 接口上传到火山引擎日志服务中,SLS 中指定 Logstore 的数据会写入指定的日志主题。导入时支持指定消费的起始位置,即可消费历史数据或实时消费新增日志。
SLS 在采集日志中,为原始日志添加的 __time__ 等部分保留字段支持导入到火山引擎日志服务中,__time____source__ 字段默认直接导入,__tag__:_pod_name_ 等部分字段将转换字段名称后再导入,其他字段不支持导入。
支持导入的字段包括:

SLS 元数据字段

火山引擎日志服务对应字段

__time__

__time__

__source__

__source__

__tag__:_pod_name_

__pod_name__

__tag__:_container_name_

__container_name__

__tag__:_pod_uid_

__pod_uid__

__tag__:_container_source_

__container_source__

__tag__:_container_ip_

__container_ip__

__tag__:_namespace_

__namespace__

__tag__:_image_name_

__image_name__

__tag__:__path__

__path__

content

__content__

注意事项

  • 为保证数据安全,建议您在创建日志导入任务时,使用阿里云 RAM 子账号密钥进行鉴权。RAM 子账号应具备消费组相关的权限策略,您可以直接参考SLS RAM 授权策略示例编写授权策略,授权的操作步骤请参考为 RAM 用户授权。您也可以根据业务需求自定义 RAM 授权策略,消费组相关的 Action 请参考RAM 用户授权
  • 创建日志导入任务后,不可修改任务的数据源等配置。如果配置错误,请删除配置后重新创建。
  • 一个日志主题只能对应一个 SLS 日志导入任务,不支持将多个 Logstore 的日志数据写入到同一个日志主题中。
  • 导入日志时,SLS Logstore 的 Shard 和日志主题的分区中的数据数据并不是一一对应的。
  • 成功创建 SLS 日志导入任务之后,火山引擎日志服务会在 SLS 侧创建一个消费组(Consumer Group)用于消费日志数据,请勿在 SLS 侧对该消费组进行任何编辑或删除操作,例如重置消费位点、删除消费组等,否则会造成重复消费或消费失败等问题。

前提条件

  • 已在阿里云日志服务 SLS 中创建 Project 和 Logstore,并采集到日志数据。详细说明请参考快速入门
  • 已在火山引擎日志服务中创建日志项目和日志主题。其中,日志主题的分区数量需要和 Logstore 的 Shard 数量一致。
  • 首次使用日志导入或日志投递功能之前,需要完成云资源访问授权,即授予日志服务产品访问并写入资源的权限。如果尚未授权,日志服务会在控制台创建日志导入任务时引导您进行操作,推荐使用火山引擎主账号进行授权,相关说明请参考跨服务访问授权

从 SLS 导入日志

创建 SLS 日志导入任务的操作步骤如下:

步骤一 初始配置

  1. 登录日志服务控制台

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

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

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

  5. 外站日志迁入区域选择阿里云SLS日志迁入

  6. 填写基本信息

    配置

    说明

    导入类型

    日志导入任务的类型,默认为云服务日志

    日志主题名称

    目的端日志主题的名称,即从 SLS 导出的日志数据,在火山引擎日志服务中保存的日志主题名称。

    任务名称

    日志导入任务的名称。

步骤二 数据源配置

  1. 根据页面提示,填写数据源信息

    配置

    说明

    数据源

    日志的数据源,默认为阿里云。

    网络类型

    数据导入的网络类型,支持公有网络或私有网络传输。

    说明

    如果需要通过私有网络传输数据,请先通过工单系统联系技术支持沟通需求场景。

    域名

    阿里云日志服务 SLS 的域名,可以在日志源 Project 的项目概览页面查看。

    Project

    日志源 Project 名称。

    Logstore

    日志源 Logstore 名称。

    消费组

    消费组的名称。
    一个 Logstore 可以创建 30 个消费组,且消费组名称不可重复。

    密钥

    阿里云账号密钥,即 AK 与 SK。火山引擎日志服务将使用此账号通过阿里云日志服务鉴权,读取并消费指定 Project 和 Logstore 的日志数据。

    说明

    推荐使用 RAM 用户进行鉴权,该用户应具备消费组的相关权限,授权策略示例请参考SLS RAM 授权策略示例

    消费起始位置

    首次消费日志的起始位置,支持设置为:

    • 最早数据:(默认)从 Logstore 中最早的一条日志数据开始消费。
    • 最新数据:从 Logstore 中最新的一条日志数据开始消费。
    • 自定义时间点数据:从指定的时间点开始消费数据。 Logstore 中可以设置日志保存时间,超期的日志将被自动删除。此处指定的时间点必须在日志保存时间以内,否则会造成消费不生效等问题。

    按顺序消费

    是否开启按顺序消费功能。默认为开启状态。

    • 开启后:在 Shard 中按顺序消费。Shard 分裂后,先消费原 Shard 数据,然后同时消费由该 Shard 分裂的 Shard 数据。Shard 合并后,先消费原 Shard 数据,然后消费由原 Shard 合并后的新 Shard 数据。
    • 关闭后:不按顺序消费。即所有同时开始消费,Shard 分裂或者合并后产生的新 Shard,也会立即消费。此时日志写入火山引擎日志服务的顺序可能是乱序的。
  2. 确认配置后,单击下一步

步骤三 检查索引配置

  1. 检查索引配置。
    根据页面提示,按需设置或更新索引,您也可以单击导入已有索引配置,导入其他日志主题的索引。
    • 若此日志主题未设置索引,可以参考配置索引进行设置。
    • 若此日志主题已设置索引,可以根据采集规则中解析的日志字段判断是否需要更新索引。

    说明

    • 启用索引后,您才能检索分析采集到的日志数据。
    • 更新后的索引设置仅对后续写入的新数据生效。其他检索分析的使用说明及限制请参考检索概述分析概述
  2. 单击完成:检查索引配置

说明

创建日志导入任务之后,日志服务随即开始消费 SLS 中的日志数据,并实时写入指定的日志主题中。您可以为日志数据开启并配置索引,以便实时检索分析日志数据。详细说明请参考配置索引

查看日志导入任务

创建日志导入任务之后,您可以在导入任务的详情页中查看已配置的导入任务基本信息及数据源信息,也可以在阿里云日志服务控制台查看每个 Shard 的消费情况。

查看任务信息

  1. 登录日志服务控制台

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

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

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

  5. 数据导入页签中的任务列表区域,单击目标导入任务的名称。

  6. 查看任务的基本信息。
    日志导入任务的详情页中展示任务名称、任务主题、导入状态等基本信息,以及数据源、消费组、网络类型等数据源信息。
    导入状态说明:

    状态

    说明

    运行中

    日志导入任务正常运行中。

    SLS资源不存在

    SLS 的 Project 或 Logstore 已被删除。此时消费停止且不可恢复,需要重新创建日志导入任务。

    SLS鉴权失败

    SLS 账号或权限异常,例如账号欠费或账号已被删除相关权限。账号或权限恢复后,稍后将恢复正常消费。

    SLS未知异常

    SLS 服务端异常,待服务恢复后即可恢复正常运行。

    TLS资源不存在

    火山引擎日志服务的日志项目或日志主题已被删除。此时消费停止且不可恢复,需要重新创建日志导入任务。

    TLS鉴权失败

    火山引擎日志服务的账号或权限异常,例如账号欠费或账号已被删除相关权限。账号或权限恢复后,稍后将恢复正常消费。

    图片

查看消费状态与监控信息

阿里云日志服务控制台中提供消费状态的实时展示,您可以通过以下方式查看消费的进度信息:

删除日志导入任务

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

说明

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

SLS RAM 授权策略示例

如果使用 RAM 用户进行阿里云日志服务鉴权,读取并消费日志数据,您需要为 RAM 用户授予消费组相关的权限策略,推荐的授权策略如下:

说明

其中,${projectName}${logstoreName}需要替换为实际的 Project 和 Logstore 名称。

{
  "Version": "1",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "log:GetCursorOrData",
        "log:GetLogStore"
      ],
      "Resource": "acs:log:*:*:project/${projectName}/logstore/${logstoreName}"
    },
    {
      "Effect": "Allow",
      "Action": [
        "log:CreateConsumerGroup",
        "log:ListConsumerGroup",
        "log:ConsumerGroupUpdateCheckPoint",
        "log:ConsumerGroupHeartBeat",
        "log:UpdateConsumerGroup",
        "log:GetConsumerGroupCheckPoint"
      ],
      "Resource": "acs:log:*:*:project/${projectName}/logstore/${logstoreName}/consumergroup/*"
    }
  ]
}