识别规则
概述
识别规则用于自动识别和合并重复的配置项。当系统从不同数据源采集到配置项信息时,识别规则可以判断这些信息是否代表同一个配置项,从而避免重复数据。
业务价值:
- 自动发现和合并重复的配置项
- 保持配置项数据的唯一性
- 提高数据质量,减少人工清洗和维护的成本
工作原理
识别规则包含两部分:
1. 匹配规则
作用:判断两个配置项是否可能是同一个配置项。
逻辑:只要满足任意一个匹配规则,两个配置项就被认为是"可能相同"的。
示例:
- 规则1:IP地址相同 → 可能是同一个服务器
- 规则2:主机名相同 → 可能是同一个服务器
只要 IP地址相同 或者 主机名相同,就认为可能是同一个服务器。
2. 校验规则
作用:进一步验证两个"可能相同"的配置项是否真的相同。
逻辑:只要不满足任意一个校验规则,即使满足匹配规则,两个配置项也被认为是"不相同"的。
示例:
- 规则1:序列号相同 → 检查下一条校验规则
- 规则2:资产编号也相同 → 确认是同一个服务器
即使 IP地址相同,如果序列号不同或资产编号不同,就认为是不同的服务器。
综合判断流程
1. 检查匹配规则
├─ 不满足任何匹配规则 → 不是同一个配置项(不合并)
└─ 满足至少一个匹配规则 → 进入校验(可能是同一个配置项)
2. 检查校验规则
└─ 不满足任意一个校验规则 → 不是同一个配置项(不合并)
界面组织
识别规则标签页包含以下区域:
| 区域 | 说明 |
|---|---|
| 继承设置 | 是否继承父类型的识别规则 |
| 目标范围 | 指定从哪个父类型开始搜索候选项 |
| 匹配规则 | 配置用于初步判断的规则列表 |
| 校验规则 | 配置用于最终确认的规则列表 |
继承父类型规则
如果勾选"继承"选项,当前类型将使用父类型定义的识别规则。
注意:
- 继承时规则为只读,不能修改
- 取消勾选后,系统会默认将父类型的规则复制到当前类型,用户可以在此基础上编辑自己的规则
目标范围
目标范围指定系统在查找匹配的配置项时,从哪个父类型开始搜索。
选项说明:
| 选项 | 说明 |
|---|---|
| 不设置 | 在当前类型及其所有子类型中搜索 |
| 指定父类型 | 从指定的父类型开始搜索,包括该类型及其子类型 |
使用场景:
- 不设置:大多数情况使用此选项,只在当前类型的实例中查找重复
- 指定父类型:当需要跨类型查找重复时使用,例如在"Windows"和"Linux"中查找重复(它们的父类型都是"计算机")
添加匹配规则
操作步骤
- 点击"添加匹配规则"按钮
- 选择比较属性(如主 IP 地址)
- 设置比较值范围
- 需要再添加更多的属性到该匹配规则,点击"添加匹配项"按钮
- 点击"保存"保存设定
比较值范围
比较值范围用于限制参与比较的配置项:
| 选项 | 说明 |
|---|---|
| 所有值 | 所有配置项都参与比较 |
| 仅包含 | 只比较指定值的配置项 |
| 排除 | 不比较指定值的配置项 |
使用场景:
- 所有值:大多数情况使用此选项
- 仅包含:只对满足特定属性值 的配置项进行比较,适合对同一配置项类型的不同子集使用不同的匹配规则(详见场景3)
- 排除:排除某些特殊配置项,如排除测试环境的服务器,是仅包含的反向操作。
强规则设置
一个匹配规则勾选"设为强规则"意味着该规则能用来创建配置项。
说明:
- 强规则可以提高匹配的准确性,避免在信息不足的情况下创建可能重复的配置项
- 如果匹配规则不设为强规则,只能用于更新配置项,而不能用来创建配置项,所以一个配置项类型必须至少有一个强匹配规则
添加校验规则
校验规则的配置方式与匹配规则相同,但作用是最终确认两个配置项是否相同。
操作步骤
- 点击"添加校验规则"按钮
- 选择比较属性(如
序列号) - 设置比较值范围
- 需要再添加更多的属性到该校验规则,点击"添加匹配项"按钮
- 点击"保存"保存设定
比较值范围
比较值范围用于限制参与比较的配置项:
| 选项 | 说明 |
|---|---|
| 所有值 | 所有配置项都参与比较 |
| 仅包含 | 只比较指定值的配置项 |
| 排除 | 不比较指定值的配置项 |
使用场景:
- 所有值:大多数情况使用此选项
- 仅包含:只对满足特定属性值的配置项进行比较,适合对同一配置项类型的不同子集使用不同的匹配规则(详见场景3)
- 排除:排除某些特殊配置项,如排除测试环境的服务器,是仅包含的反向操作。
空值比较
在匹配规则或校验规则中,勾选"空值比较"后,空值会参与比较。
说明:
- 启用:
null == null返回 为真,两个空值被视为相同 - 禁用:空值被跳过,不参与比较
使用场景:
- 通常禁用此选项,因为空值可能表示"未填写"而不是真正的相等
- 某些 特殊场景下可能需要启用,如"未分类"的配置项
推荐做法
选择可靠的匹配属性
识别规则的效果取决于所选属性的质量。选择属性时参考以下原则:
| 属性特征 | 说明 | 示例 |
|---|---|---|
| 唯一且稳定 | 适合作为匹配依据 | 序列号、资产标签、MAC 地址 |
| 唯一但不稳定 | 可以作为匹配依据,但需配合校验规则 | 主 IP 地址(可能被重新分配)、主机名(可能被重命名) |
| 不唯一 | 不适合单独使用,需与其他属性组合 | 操作系统家族、名称 |
强弱匹配规则的搭配
| 建议 | 原因 |
|---|---|
| 至少设置一条强匹配规则 | 确保系统有足够的识别信息来创建配置项 |
| 多条强规则之间尽量包含至少一条共同的属性 | 避免因为上报信息不同而产生重复数据;若后续上报的配置项同时涵盖多条无共同属性的强规则,会匹配到多条记录导致上报失败 |
| 弱匹配规则中的属性应至少在一条强匹配规则中也存在 | 否则弱规则无法匹配到之前由强规则创建的配置项,从而不能更新有强规则创建的配置项 |
| 尽量避免启用空值比较 | 空值通常表示"尚未采集到数据",启用后可能导致两个信息不完整的配置项被错误合并 |
| 使用比较值范围 限定规则适用范围 | 对同一个配置项类型的不同子集使用不同匹配逻辑时,可将区分属性加入匹配规则,通过比较值范围(仅包含/排除)限定,使规则只作用于特定子集 |
匹配规则和校验规则要搭配使用
| 做法是否推荐 | 做法 | 原因 |
|---|---|---|
| ✅ | 用范围广的属性做匹配,用精确的属性做校验 | 先宽后严,既能发现候选项,又能避免误合并 |
| ✅ | 匹配规则尽量设为强规则 | 确保有足够信息才创建配置项,避免产生重复数据 |
| ❌ | 只配匹配规则、不配校验规则 | 缺少最终确认环节,可能导致不同配置项被错误合并 |