日志服务支持 Kafka 数据导入功能,本文档介绍从 Kafka 中导入数据到日志服务的操作步骤。
背景信息
日志服务数据导入功能支持将 Kafka 集群的消息数据导入到指定日志主题。Kafka 数据导入功能通常用于业务上云数据迁移等场景,例如将自建 ELK 系统聚合的各类系统日志、应用程序数据导入到日志服务,实现数据的集中存储、查询分析和加工处理。日志服务导入功能支持导入火山引擎消息队列 Kafka 集群和自建 Kafka 集群的数据。创建导入任务后,您可以通过日志服务控制台或服务日志查看导入任务详情。
此外,日志服务还会为导入的日志数据添加以下元数据字段。
字段 | 说明 |
---|
__content__
| Kafka 消息。 |
__path__
| 字段值为空。 |
__source__
| Kafka 集群的服务地址。 |
注意事项
从 Kafka 导入数据功能的限制项如下:
限制 | 说明 |
---|
Kafka 版本 | Kafka 版本需为 0.11.x 以上。 |
并发子任务数量 | 日志服务会根据 Kafka Topic 数量,创建多个子任务进行并发导入。 - Kafka Topic 数量超过 2,000 时,日志服务会创建 16 个子任务。
- Kafka Topic 数量超过 1,000 时,日志服务会创建 8 个子任务。
- Kafka Topic 数量超过 500 时,日志服务会创建 4 个子任务。
- Kafka Topic 数量小于等于 500 时,日志服务会创建 2 个子任务。
|
数据导入配置数量 | 单个日志项目中,最多可创建 100 个不同类型的数据导入配置。 |
费用说明
从 Kafka 导入数据涉及日志服务的写流量、日志存储等计费项。具体的价格信息请参考日志服务计费项。
计费项 | 说明 |
---|
写流量 | 导入 Kafka 数据到日志服务时,涉及日志服务写流量费用。 |
日志存储 | 保存 Kafka 数据到日志服务后,后端会自动对其进行压缩,存储费用以压缩后的实际大小为准。 |
其他 | - 推荐为已导入的数据开启索引,便于后续的查询分析与数据统计。开启索引后会产生索引存储费用。按照压缩前的日志数据被建立的索引所占用的存储空间计费。
- 已导入的数据如果后续产生数据读取、数据加工、数据投递等操作,则按照计费标准进行收费。
|
前提条件
- 已创建符合版本要求的 Kafka 集群。版本要求请参见注意事项。
- 已创建日志项目和日志主题。具体操作步骤请参考创建资源。
创建导入任务
步骤一 初始配置
登录日志服务控制台。
在顶部导航栏中,选择日志服务所在的地域。
在左侧导航栏中,选择常用功能 > 日志接入。
在数据导入区域,选择Kafka导入。
填写初始配置。
配置 | 说明 |
---|
日志项目 | 用于存储 Kafka 数据的日志项目。 |
日志主题名称 | 用于存储 Kafka 数据的日志主题名称。 说明 不支持将数据导入到云产品日志、服务日志等日志的专属日志主题。 |
步骤二 导入配置
填写导入配置。
配置 | 说明 |
---|
任务名称 | 日志导入任务的名称。 |
服务地址 | 不同类型的 Kafka 集群对应的服务地址不同,详细说明如下: - 火山引擎消息队列 Kafka 版:Kafka 实例的接入点,详细说明请参考查看接入点。
如果 Kafka 实例与日志服务 Project 属于同一地域,可使用私网访问,否则需使用公网访问。 - 自建的 Kafka 集群:Kafka Broker 的 IP 地址和端口号或者域名和端口号。仅支持公网访问。
多个服务地址之间需使用半角逗号(,)分隔。 |
Kafka实例 ID | 当您使用的是火山引擎消息队列 Kafka 版时,应设置为 Kafka 实例 ID。获取方式请参考查看实例详情。 |
是否需要鉴权 | 如果您使用的是公网服务地址,建议开启鉴权,并根据 Kafka 侧的配置完成如下配置。鉴权说明,请参见支持的安全机制。 - 协议类型:安全传输协议,可选值包括 plaintext、sasl_ssl、ssl 和 sasl_plaintext。
- 认证机制:密码认证机制,可选值包括 PLAIN、SCRAM-SHA-256 和 SCRAM-SHA-512。
- 用户名:用于身份认证的 Kafka SASL 用户名。
- 密码:用户密码。
|
Topic列表 | Kafka Topic 名称。
多个 Kafka Topic 之间应使用半角逗号(,)分隔。 |
消费组 | Kafka 消费组。
如果不填,系统将自动创建 Kafka 消费组。 |
起始位置 | 数据导入的起始位置。可选值: - 最早数据:从指定的 Kafka Topic 中的第一条数据开始导入。
- 最新数据:从指定的 Kafka Topic 中最新生成的数据开始导入。
|
编码格式 | 数据的编码格式。可选值包括 UTF-8、GBK。 |
日志提取模式 | 待导入数据的格式。可选值: - 单行全文:如果不需要对数据进行结构化处理,可选择单行全文模式。
- JSON:如果待导入的数据为 JSON 格式,您可以选择 JSON 模式。导入任务会将数据解析为键值对格式,只解析 JSON 数据的第一层。
- 单行完整正则:通过正则表达式解析数据,将数据解析为键值对格式。此时需要额外填写其他参数,详细说明请参考下表。
|
上传解析失败日志 | 是否上传解析失败的日志,默认为开启状态。 - 开启:所有解析失败的日志,均以指定字段作为键名称(Key),原始日志内容作为值(Value)上传到日志服务。此时需要指定失败日志键名称,用于存放解析失败的日志。
- 关闭:解析失败的日志不上传到日志服务。
|
失败日志键名称 | 用于存放解析失败的日志的字段。 |
指定时间字段 | 是否使用指定字段的值作为日志时间。默认情况下,日志服务采用数据导入时的系统时间作为日志时间。您也可以打开指定时间字段开关,开启后需要指定日志中表示时间的字段,日志服务会用该字段值作为日志时间。相关配置如下: - 时间键名称:时间字段的 Key。
- 时间正则:使用正则表达式提取日志中的时间。
- 时间转换格式:时间格式,用于解析时间字段的 Value。支持的时间格式设置请参考时间格式,例如时间字段值为
1651648409 ,则可配置时间转换格式为 %s ;时间字段值为 1651648416882 ,则可配置时间转换格式为 %F ;时间字段值为 2022-01-01T15:30:00.999+0800 ,则可配置时间转换格式为 %Y-%m-%dT%H:%M:%S.%f%z 。 - 时区:时区配置。默认为机器所在时区,支持设置为 GMT 格式或 UTC 格式。
|
默认时间来源 | 关闭指定时间字段时,您可以选择系统当前时间或 Kafka 消息时间戳作为日志时间。 |
如果设置日志提取模式为单行完整正则,还需额外设置如下参数。您可以选择不同的提取模式,手动或自动生成正则表达式,并在提取结果区域确认正则表达式对于日志样例的提取结果。
提取模式 | 说明 |
---|
自动生成 | 开启自动生成功能后,页面会根据鼠标划词自动提取正则表达式。 - 在日志样例区域,通过鼠标自左至右划词选中需要提取的日志内容。
- 在弹出的文本框中确认所选值,并单击生成正则。
- 依次划词提取所有需要采集的键值对之后,在提取结果区域设置各个字段的 Key 值。
说明 - 对于无需采集的字段,建议在划词时忽略。
- 提取结果中的 Key 不可为空,且不可重复。
- 自动生成功能仅适用于英文字符的正则表达式提取,暂不支持中文字符。
|
手动设置 | 关闭自动生成功能即手动设置正则表达式。设置后单击立即验证,日志服务会根据已输入的正则表达式匹配日志样例中的内容,提取键值对。
页面提示验证成功之后,您可以在提取结果区域设置各个字段的 Key 值。 说明 - 请用
() 标识每个 kv 对应的正则表达式,日志服务将() 视为捕获组,这些捕获组会被解析为键值对。 - 对于无需采集的字段,可以不体现在正则表达式中,或提取后在提取结果中删除。
- 提取结果中的 Key 不可为空,且不可重复。
|
单击预览来预览待导入的文件内容,并单击下一步。
填写导入配置之后,日志服务提供指定数据源的数据预览功能,您可以查看预览区域中的数据是否与待导入的数据相同。如果数据不同,表示数据源配置不正确,建议重新设置。
步骤三 检查索引配置
- 检查索引配置。
根据页面提示,按需设置或更新索引,您也可以单击导入已有索引配置,导入其他日志主题的索引。
- 若此日志主题未设置索引,可以参考配置索引进行设置。
- 若此日志主题已设置索引,可以根据采集规则中解析的日志字段判断是否需要更新索引。
说明
- 启用索引后,您才能检索分析采集到的日志数据。
- 更新后的索引设置仅对后续写入的新数据生效。其他检索分析的使用说明及限制请参考检索概述和分析概述。
- 单击完成:检查索引配置。
查看导入任务详情
成功创建 Kafka 数据导入任务之后,您可以在日志服务控制台中查看相关信息,包括导入配置的配置详情。
- 登录日志服务控制台。
- 在顶部导航栏中,选择日志服务所在的地域。
- 在左侧导航栏中,选择常用功能 > 日志接入。
- 在数据导入页签中的任务列表区域,单击日志导入任务名称。
- 查看任务的配置信息。
日志导入任务的详情页中展示了导入任务的基本信息、数据源配置信息。
修改导入任务
成功创建 Kafka 数据导入任务之后,您可以随时根据业务需求修改导入任务的配置。
- 登录日志服务控制台。
- 在顶部导航栏中,选择日志服务所在的地域。
- 在左侧导航栏中,选择常用功能 > 日志接入。
- 在数据导入页签中的任务列表区域,单击待编辑的导入任务。
- 在页面右上角,单击修改配置。
您可以参考创建导入任务中的说明,修改相关配置。
删除导入任务
如果数据导入任务遇到了故障或异常,您可以删除故障的导入任务,重新导入数据。如果已完成存量日志数据的迁移,或者不再需要导入日志到火山引擎日志服务,您可以参考以下步骤删除日志导入任务。
说明
- 删除日志导入任务不影响已成功导入的日志数据。
- 删除日志导入任务之后不可恢复,请谨慎操作。
- 登录日志服务控制台。
- 在顶部导航栏中,选择日志服务所在的地域。
- 在左侧导航栏中,选择常用功能 > 日志接入。
- 在数据导入页签中的任务列表区域,找到需要删除的日志导入任务,然后在其对应的操作列单击删除。
- 在弹出对话框中确认待删除的任务信息,然后单击确定。