日志探索功能用于将 SLS LogStore 中的日志数据接入 UModel 统一建模体系。接入后,可实现日志与实体、指标的关联查询和分析。
功能概述
日志探索支持以下功能:
基于实体查询日志:选中某个 Pod 实体后,可直接查看该 Pod 产生的所有日志。
日志与指标联动:在实体中查看指标异常后,可一键跳转到对应的日志查询。
字段语义化:日志字段支持配置中文名、描述、类型等结构化信息。
统一管理视图:在日志探索主页、 UModel Explorer 中可查看日志与其他数据源的关联关系。
核心概念
在使用日志探索功能前,需了解以下核心概念。

概念 | 说明 |
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
登录云监控2.0控制台,选择目标工作空间,在左侧导航栏选择。
单击纳管LogStore。
选择 SLS Project 和 LogStore,系统自动检测是否存在相关的 UModel 节点,完成后单击下一步。
重复检测:SLS LogStore 节点:系统按
spec.project + spec.store匹配现有的 SLS LogStore 节点。如存在匹配项,可选择以下操作:选项
说明
复用现有节点
使用已存在的 SLS LogStore,不创建新节点。
创建新节点
忽略现有节点,创建一个新的 SLS LogStore。
重复检测:LogSet 节点:系统检测是否存在与该 LogStore 相关的 LogSet 节点。如存在,可选择以下操作:
选项
说明
复用(不覆盖)
使用现有的 LogSet,保持其字段定义不变。
覆盖
使用现有的 LogSet,用新生成的字段定义覆盖原有内容。
创建新节点
创建一个全新的 LogSet。

步骤二:配置 LogSet
配置 LogSet 的元数据和字段结构,完成后单击下一步。
元数据配置
配置项 | 说明 |
UModel Domain | 域名,用于隔离不同业务的 UModel。通常使用默认值。 |
UModel Name | 自动生成,格式为 |
显示名称 | 中英文显示名,建议填写业务可读的名称。 |
描述 | 日志集的说明信息。 |
字段自动发现
系统并行执行以下操作自动发现字段:
获取索引配置:从 SLS 索引设置中读取已配置索引的字段。
采样日志数据:获取最近的日志样例(默认 10 条),解析其中的字段。
说明自动发现的字段可能包含系统字段(如
__source__、__time__)。如无需添加至 LogSet,可删除以保持简洁,提升查询效率。
融合规则如下:
索引字段优先:已配置索引的字段标记为可过滤和可分析。
日志样例补充:索引中没有但日志中存在的字段也会被提取,但标记为不可分析。
嵌套字段支持:JSON 类型的字段会递归解析其内部结构。
字段说明
列名 | 说明 |
属性名 | 字段的原始名称,不可修改。 |
显示名称 | 字段的中英文显示名,默认与属性名相同。 |
描述 | 字段的说明文字。 |
示例值 | 从日志样例中提取的值。 |
字段类型 | 支持 string、integer、float、json_object、time 等类型。 |
是否可过滤 | 是否可用于过滤条件(通常需要索引支持)。 |
是否可分析 | 是否支持聚合分析(通常需要索引支持且开启统计)。 |
字段类型
类型 | 说明 |
string | 字符串,支持全文搜索和精确匹配。 |
integer | 整数,支持范围查询和聚合计算。 |
float | 浮点数,支持范围查询和聚合计算。 |
json_object | 嵌套 JSON 对象,其内部字段会被展开。 |
time | 时间类型,支持时间范围查询。 |
如果 LogStore 既没有配置索引,最近一天内也没有日志数据,系统将提示无法探索。
步骤三:关联 EntitySet
建立 LogSet 与 EntitySet 的关联关系,即创建 DataLink。
选择 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 字段直接匹配。

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

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。

字段比对
新建 StorageLink 时,系统自动比对 LogSet 的字段定义与 LogStore 的索引字段。
状态 | 说明 |
匹配 | 字段名和类型一致。 |
LogSet 有 / LogStore 无 | LogSet 中定义了该字段,但 LogStore 索引中没有。 |
LogStore 有 / LogSet 无 | LogStore 索引中有该字段,但 LogSet 中未定义。 |
LogSet 有但 LogStore 没有的字段,如配置了可过滤,查询时会报错字段不存在。
LogStore 有但 LogSet 没有的字段,不会出现在结构化查询的字段列表中。
步骤五:日志列表管理查看
日志探索完成后,所有 LogSet 可在日志列表页面统一管理。

列表说明
列 | 说明 |
StorageLink 状态 | 显示关联的 SLS LogStore 数量及关联是否完整。 |
DataLink 状态 | 显示关联的 EntitySet 数量。 |
状态图标说明:
图标 | 说明 |
绿色勾 | 关联正常。 |
黄色叹号 | 存在不完整的关联(如关联的节点不存在)。 |
特殊图标 | filter_by_entity 生效,仅部分实体被关联。 |
高级筛选
支持多维度筛选条件。

通用筛选
过滤包含辅助创建的 UModel
过滤包含 CommonSchema 的 UModel
StorageLink 筛选
未关联任何 SLS LogStore
包含不完整边
包含多条 StorageLink
包含部分实体生效的 link
DataLink 筛选
未被任何 EntitySet 关联
包含不完整边
包含多条 DataLink
包含部分实体生效的 link
全文检索
支持对 LogSet、StorageLink、DataLink 的名称和显示名进行全文搜索。
筛选条件之间为 AND 关系叠加。
编辑与级联更新
单击目标行的编辑按钮可修改 LogSet 属性。修改 LogSet 的 domain 或 name 时,系统自动更新所有关联的 StorageLink(作为 src)和 DataLink(作为 dest)的引用信息。

常见问题
为什么提示无法探索?
通常是因为 LogStore 既没有配置索引,也没有最近的日志数据。请确保满足以下条件之一:
LogStore 中存在数据(至少最近 1 天内有日志)。
已配置索引。
字段类型不对怎么办?
在步骤二:配置 LogSet的字段表格中可手动修改字段类型。如日志中某字段实际是数字但被识别为 string,可改为 integer 或 float。
能否关联多个 EntitySet?
可以。在步骤三:关联 EntitySet中可选择多个 EntitySet 进行关联,每个关联创建一条独立的 DataLink。
修改 LogSet 字段后,已有的 DataLink 会受影响吗?
如修改了 LogSet 字段且该字段为 fields_mapping 的引用字段,不会自动级联更改,需手动调整 DataLink 的 fields_mapping。其他情况不受影响。