跳到主要内容

识别规则

概述

识别规则用于自动识别和合并重复的配置项。当系统从不同数据源采集到配置项信息时,识别规则可以判断这些信息是否代表同一个配置项,从而避免重复数据。

识别规则标签页

业务价值

  • 自动发现和合并重复的配置项
  • 保持配置项数据的唯一性
  • 提高数据质量,减少人工清洗和维护的成本

工作原理

识别规则包含两部分:

1. 匹配规则

作用:判断两个配置项是否可能是同一个配置项。

逻辑:只要满足任意一个匹配规则,两个配置项就被认为是"可能相同"的。

示例

  • 规则1:IP地址相同 → 可能是同一个服务器
  • 规则2:主机名相同 → 可能是同一个服务器

只要 IP地址相同 或者 主机名相同,就认为可能是同一个服务器。

2. 校验规则

作用:进一步验证两个"可能相同"的配置项是否真的相同。

逻辑:只要不满足任意一个校验规则,即使满足匹配规则,两个配置项也被认为是"不相同"的。

示例

  • 规则1:序列号相同 → 检查下一条校验规则
  • 规则2:资产编号也相同 → 确认是同一个服务器

即使 IP地址相同,如果序列号不同或资产编号不同,就认为是不同的服务器。

综合判断流程

1. 检查匹配规则
├─ 不满足任何匹配规则 → 不是同一个配置项(不合并)
└─ 满足至少一个匹配规则 → 进入校验(可能是同一个配置项)

2. 检查校验规则
└─ 不满足任意一个校验规则 → 不是同一个配置项(不合并)

界面组织

识别规则标签页包含以下区域:

区域说明
继承设置是否继承父类型的识别规则
目标范围指定从哪个父类型开始搜索候选项
匹配规则配置用于初步判断的规则列表
校验规则配置用于最终确认的规则列表

继承父类型规则

如果勾选"继承"选项,当前类型将使用父类型定义的识别规则。

注意

  • 继承时规则为只读,不能修改
  • 取消勾选后,系统会默认将父类型的规则复制到当前类型,用户可以在此基础上编辑自己的规则

目标范围

目标范围指定系统在查找匹配的配置项时,从哪个父类型开始搜索。

选项说明

选项说明
不设置在当前类型及其所有子类型中搜索
指定父类型从指定的父类型开始搜索,包括该类型及其子类型

使用场景

  • 不设置:大多数情况使用此选项,只在当前类型的实例中查找重复
  • 指定父类型:当需要跨类型查找重复时使用,例如在"Windows"和"Linux"中查找重复(它们的父类型都是"计算机")

添加匹配规则

操作步骤

  1. 点击"添加匹配规则"按钮
  2. 选择比较属性(如主 IP 地址)
  3. 设置比较值范围
  4. 需要再添加更多的属性到该匹配规则,点击"添加匹配项"按钮
  5. 点击"保存"保存设定

比较值范围

比较值范围用于限制参与比较的配置项:

选项说明
所有值所有配置项都参与比较
仅包含只比较指定值的配置项
排除不比较指定值的配置项

使用场景

  • 所有值:大多数情况使用此选项
  • 仅包含:只对满足特定属性值的配置项进行比较,适合对同一配置项类型的不同子集使用不同的匹配规则(详见场景3
  • 排除:排除某些特殊配置项,如排除测试环境的服务器,是仅包含的反向操作。

强规则设置

一个匹配规则勾选"设为强规则"意味着该规则能用来创建配置项。

说明

  • 强规则可以提高匹配的准确性,避免在信息不足的情况下创建可能重复的配置项
  • 如果匹配规则不设为强规则,只能用于更新配置项,而不能用来创建配置项,所以一个配置项类型必须至少有一个强匹配规则

添加校验规则

校验规则的配置方式与匹配规则相同,但作用是最终确认两个配置项是否相同。

操作步骤

  1. 点击"添加校验规则"按钮
  2. 选择比较属性(如序列号
  3. 设置比较值范围
  4. 需要再添加更多的属性到该校验规则,点击"添加匹配项"按钮
  5. 点击"保存"保存设定

比较值范围

比较值范围用于限制参与比较的配置项:

选项说明
所有值所有配置项都参与比较
仅包含只比较指定值的配置项
排除不比较指定值的配置项

使用场景

  • 所有值:大多数情况使用此选项
  • 仅包含:只对满足特定属性值的配置项进行比较,适合对同一配置项类型的不同子集使用不同的匹配规则(详见场景3
  • 排除:排除某些特殊配置项,如排除测试环境的服务器,是仅包含的反向操作。

空值比较

在匹配规则或校验规则中,勾选"空值比较"后,空值会参与比较。

说明

  • 启用null == null 返回 为真,两个空值被视为相同
  • 禁用:空值被跳过,不参与比较

使用场景

  • 通常禁用此选项,因为空值可能表示"未填写"而不是真正的相等
  • 某些特殊场景下可能需要启用,如"未分类"的配置项

推荐做法

选择可靠的匹配属性

识别规则的效果取决于所选属性的质量。选择属性时参考以下原则:

属性特征说明示例
唯一且稳定适合作为匹配依据序列号资产标签MAC 地址
唯一但不稳定可以作为匹配依据,但需配合校验规则主 IP 地址(可能被重新分配)、主机名(可能被重命名)
不唯一不适合单独使用,需与其他属性组合操作系统家族名称

强弱匹配规则的搭配

建议原因
至少设置一条强匹配规则确保系统有足够的识别信息来创建配置项
多条强规则之间尽量包含至少一条共同的属性避免因为上报信息不同而产生重复数据;若后续上报的配置项同时涵盖多条无共同属性的强规则,会匹配到多条记录导致上报失败
弱匹配规则中的属性应至少在一条强匹配规则中也存在否则弱规则无法匹配到之前由强规则创建的配置项,从而不能更新有强规则创建的配置项
尽量避免启用空值比较空值通常表示"尚未采集到数据",启用后可能导致两个信息不完整的配置项被错误合并
使用比较值范围 限定规则适用范围对同一个配置项类型的不同子集使用不同匹配逻辑时,可将区分属性加入匹配规则,通过比较值范围(仅包含/排除)限定,使规则只作用于特定子集

匹配规则和校验规则要搭配使用

做法是否推荐做法原因
用范围广的属性做匹配,用精确的属性做校验先宽后严,既能发现候选项,又能避免误合并
匹配规则尽量设为强规则确保有足够信息才创建配置项,避免产生重复数据
只配匹配规则、不配校验规则缺少最终确认环节,可能导致不同配置项被错误合并

合理使用继承

场景建议做法
子类型的识别逻辑与父类型相同继承父类型规则,减少重复配置
子类型需要完全不同的识别逻辑取消继承,自定义规则
子类型在父类型基础上需要微调取消继承,在复制的规则基础上修改

配置示例

场景1:通过主IP地址和主机名识别计算机

业务需求: 通过主IP地址和主机名识别服务器,如果有序列号则进一步确认。

配置步骤

匹配规则

  1. 比较属性:主IP地址,操作符:等于,范围:所有值
  2. 比较属性:名称,操作符:等于,范围:所有值

校验规则

  1. 比较属性:序列号,操作符:等于,范围:所有值

工作流程

  • 如果两个配置项的主IP地址相同 主机名相同 → 可能是同一个
  • 如果序列号也相同 → 确认是同一个,合并数据
  • 如果序列号不同 → 不是同一个,不合并

场景2:通过资产标签识别网络设备

业务需求: 使用资产标签作为主要识别依据,确保唯一性。

配置步骤

匹配规则

  1. 比较属性:资产标签,操作符:等于,范围:所有值

校验规则: (不配置,匹配规则即可满足需求)

工作流程

  • 资产标签相同 → 是同一个设备
  • 资产标签不同 → 不是同一个设备

场景3:按属性值区分不同匹配逻辑

业务需求: 同一类型下包含虚拟机和物理机,它们的匹配依据不同:虚拟机通过外部对象 ID(如 AWS 实例 ID、VMware MOB ID)识别,物理机通过名称和序列号识别。

前置条件

  • 类型包含一个 是虚拟的 布尔属性用于区分虚拟机和物理机

配置步骤

匹配规则1(针对虚拟机)

配置项
比较属性是虚拟的
比较值范围仅包含:为真
配置项
比较属性外部对象ID
比较值范围所有值

匹配规则2(针对物理机)

配置项
比较属性是虚拟的
比较值范围仅包含:为假
配置项
比较属性名称
比较值范围所有值
配置项
比较属性序列号
比较值范围所有值

工作流程

  • 虚拟机:是虚拟的为真 的配置项,通过 外部对象ID 进行匹配
  • 物理机:是虚拟的为假 的配置项,通过 名称序列号 进行匹配
  • 两条规则互不干扰,各自只作用于符合条件的配置项

常见问题

Q:匹配规则和校验规则有什么区别?

A

  • 匹配规则:初步判断,使用"或"逻辑(满足任意一个即可)
  • 校验规则:最终确认,使用"与"逻辑(不满足任意一个就不相同)

Q:必须同时配置匹配规则和校验规则吗?

A:不是。可以只配置匹配规则,这样系统只会进行初步判断。但建议同时配置校验规则以提高准确性。

Q:目标范围应该怎么设置?

A:大多数情况不需要设置(默认即可)。只有在需要跨类型查找重复时才需要指定父类型。

Q:如何测试识别规则是否有效?

A:可以通过以下方式测试:

  1. 从不同数据源导入可能重复的配置项数据
  2. 观察系统是否正确识别和合并了重复数据
  3. 检查合并后的配置项是否包含了所有来源的信息