纳管 LogStore

更新时间:
复制为 MD 格式

日志探索功能用于将 SLS LogStore 中的日志数据接入 UModel 统一建模体系。接入后,可实现日志与实体、指标的关联查询和分析。

功能概述

日志探索支持以下功能:

  • 基于实体查询日志:选中某个 Pod 实体后,可直接查看该 Pod 产生的所有日志。

  • 日志与指标联动:在实体中查看指标异常后,可一键跳转到对应的日志查询。

  • 字段语义化:日志字段支持配置中文名、描述、类型等结构化信息。

  • 统一管理视图:在日志探索主页、 UModel Explorer 中可查看日志与其他数据源的关联关系。

核心概念

在使用日志探索功能前,需了解以下核心概念。

image.png

概念

说明

LogSet(日志集)

UModel 中表示日志数据集合的节点类型。一个 LogSet 通常对应一类业务日志,例如用户服务访问日志。核心属性包括 metadata(元数据)和 spec.fields(字段定义)。

SLS LogStore(日志存储)

UModel 中表示日志存储的节点类型。对应一个具体的LogStore,记录了Project、LogStore名称、Region等信息。

StorageLink(存储链接)

表示 LogSet 与 SLS LogStore 之间的关联关系。一个 LogSet 可关联一个或多个 LogStore。

DataLink(数据链接)

表示 LogSet 与 EntitySet 之间的关联关系。通过 fields_mapping 定义字段映射通过 filter_by_entity 定义实体过滤条件。

操作步骤

步骤一:选择 Project 和 LogStore

  1. 登录云监控2.0控制台,选择目标工作空间,在左侧导航栏选择所有功能 > 日志探索

  2. 单击纳管LogStore

  3. 选择 SLS Project 和 LogStore,系统自动检测是否存在相关的 UModel 节点,完成后单击下一步

    • 重复检测:SLS LogStore 节点:系统按 spec.project + spec.store 匹配现有的 SLS LogStore 节点。如存在匹配项,可选择以下操作:

      选项

      说明

      复用现有节点

      使用已存在的 SLS LogStore,不创建新节点。

      创建新节点

      忽略现有节点,创建一个新的 SLS LogStore。

    • 重复检测:LogSet 节点:系统检测是否存在与该 LogStore 相关的 LogSet 节点。如存在,可选择以下操作:

      选项

      说明

      复用(不覆盖)

      使用现有的 LogSet,保持其字段定义不变。

      覆盖

      使用现有的 LogSet,用新生成的字段定义覆盖原有内容。

      创建新节点

      创建一个全新的 LogSet。

      image.png

步骤二:配置 LogSet

配置 LogSet 的元数据和字段结构,完成后单击下一步image.png

元数据配置

配置项

说明

UModel Domain

域名,用于隔离不同业务的 UModel。通常使用默认值。

UModel Name

自动生成,格式为 {Domain}.{Project}_{LogStore}

显示名称

中英文显示名,建议填写业务可读的名称。

描述

日志集的说明信息。

字段自动发现

系统并行执行以下操作自动发现字段:

  1. 获取索引配置:从 SLS 索引设置中读取已配置索引的字段。

  2. 采样日志数据:获取最近的日志样例(默认 10 条),解析其中的字段。

    说明

    自动发现的字段可能包含系统字段(如 __source____time__)。如无需添加至 LogSet,可删除以保持简洁,提升查询效率。

融合规则如下:

  • 索引字段优先:已配置索引的字段标记为可过滤和可分析。

  • 日志样例补充:索引中没有但日志中存在的字段也会被提取,但标记为不可分析。

  • 嵌套字段支持:JSON 类型的字段会递归解析其内部结构。

字段说明

列名

说明

属性名

字段的原始名称,不可修改。

显示名称

字段的中英文显示名,默认与属性名相同。

描述

字段的说明文字。

示例值

从日志样例中提取的值。

字段类型

支持 string、integer、float、json_object、time 等类型。

是否可过滤

是否可用于过滤条件(通常需要索引支持)。

是否可分析

是否支持聚合分析(通常需要索引支持且开启统计)。

字段类型

类型

说明

string

字符串,支持全文搜索和精确匹配。

integer

整数,支持范围查询和聚合计算。

float

浮点数,支持范围查询和聚合计算。

json_object

嵌套 JSON 对象,其内部字段会被展开。

time

时间类型,支持时间范围查询。

说明

如果 LogStore 既没有配置索引,最近一天内也没有日志数据,系统将提示无法探索。

步骤三:关联 EntitySet

建立 LogSet 与 EntitySet 的关联关系,即创建 DataLink。image.png

选择 EntitySet

系统列出当前 Workspace 中所有的 EntitySet 节点。常见的关联场景:

  • 将应用服务日志关联到服务实体(通过 serviceName 匹配)。

  • 将容器日志关联到 Pod 实体(通过 podName 匹配)。

  • 将主机日志关联到主机实体(通过 hostname 匹配)。

    说明

    单一服务的日志:优先关联到对应的服务 EntitySet。

    容器日志:建议关联到 Pod EntitySet,通过 Pod 再关联到 Service。

配置 FieldsMapping

fields_mapping 定义日志字段与实体字段的对应关系。

配置示例

"fields_mapping": {
  "name": "serviceName",
  "region_id": "region_id"
}

以上配置表示:日志中的 serviceName 字段与实体的 name 字段匹配,region_id 字段直接匹配。

image.png

配置部分实体生效

如需将日志仅关联到实体的子集,可配置 filter_by_entity 字段指定过滤条件。配置后单击完成并提交,系统批量创建 UModel 节点。

image.png

filter_by_entity 使用符合 SPL where 语法的过滤条件。

示例一

language = 'java' 表示过滤 language 等于 java 的所有实体。

示例二

file_system_type in ('extreme', 'standard') AND json_extract_scalar(entity_groups, '$.eg-01') = 'true' AND region_id='cn-hongkong' AND engine='MySQL'

表示过滤满足以上所有条件的实体。

(可选)步骤四:新建 StorageLink

除完整的探索流程外,还支持单独创建 StorageLink。适用场景:

  • 已有 LogSet,需关联新的 LogStore。

  • 同一类日志分布在多个 LogStore 中,需逐个添加关联。

LogSet列表中选择目标LogSet,单击操作列的加号,单击新增关联SLS LogStore

image.png

字段比对

新建 StorageLink 时,系统自动比对 LogSet 的字段定义与 LogStore 的索引字段。

状态

说明

匹配

字段名和类型一致。

LogSet 有 / LogStore 无

LogSet 中定义了该字段,但 LogStore 索引中没有。

LogStore 有 / LogSet 无

LogStore 索引中有该字段,但 LogSet 中未定义。

说明
  • LogSet 有但 LogStore 没有的字段,如配置了可过滤,查询时会报错字段不存在。

  • LogStore 有但 LogSet 没有的字段,不会出现在结构化查询的字段列表中。

步骤五:日志列表管理查看

日志探索完成后,所有 LogSet 可在日志列表页面统一管理。

image.png

列表说明

说明

StorageLink 状态

显示关联的 SLS LogStore 数量及关联是否完整。

DataLink 状态

显示关联的 EntitySet 数量。

状态图标说明:

图标

说明

绿色勾

关联正常。

黄色叹号

存在不完整的关联(如关联的节点不存在)。

特殊图标

filter_by_entity 生效,仅部分实体被关联。

高级筛选

支持多维度筛选条件。

image.png

通用筛选

  • 过滤包含辅助创建的 UModel

  • 过滤包含 CommonSchema 的 UModel

StorageLink 筛选

  • 未关联任何 SLS LogStore

  • 包含不完整边

  • 包含多条 StorageLink

  • 包含部分实体生效的 link

DataLink 筛选

  • 未被任何 EntitySet 关联

  • 包含不完整边

  • 包含多条 DataLink

  • 包含部分实体生效的 link

全文检索

支持对 LogSet、StorageLink、DataLink 的名称和显示名进行全文搜索。

说明

筛选条件之间为 AND 关系叠加。

编辑与级联更新

单击目标行的编辑按钮可修改 LogSet 属性。修改 LogSet 的 domain 或 name 时,系统自动更新所有关联的 StorageLink(作为 src)和 DataLink(作为 dest)的引用信息。

image.png

常见问题

为什么提示无法探索?

通常是因为 LogStore 既没有配置索引,也没有最近的日志数据。请确保满足以下条件之一:

  • LogStore 中存在数据(至少最近 1 天内有日志)。

  • 已配置索引。

字段类型不对怎么办?

步骤二:配置 LogSet的字段表格中可手动修改字段类型。如日志中某字段实际是数字但被识别为 string,可改为 integer 或 float。

能否关联多个 EntitySet?

可以。在步骤三:关联 EntitySet中可选择多个 EntitySet 进行关联,每个关联创建一条独立的 DataLink。

修改 LogSet 字段后,已有的 DataLink 会受影响吗?

如修改了 LogSet 字段且该字段为 fields_mapping 的引用字段,不会自动级联更改,需手动调整 DataLink 的 fields_mapping。其他情况不受影响。