服务树
在CMDB中,服务树是一种用于组织和展示IT服务、应用程序和相关组件之间关系的层次结构。服务树可以帮助组织清晰地了解不同服务之间的依赖关系和层次结构,从而更好地管理和维护IT服务。通过服务树,用户可以快速查看和理解各个服务之间的关联,有助于提高IT服务管理的效率和可视化。
常见的CI关系包括contain, deploy, install, connect。
如果需要更多的关系可以在后台管理/关系类型中新增。
业务关系定义
通过后台管理/业务关系定义来添加关系视图定义,用户可以看到页面将以树形图的方式展现出各模型之间的关系,所下图所示:

上图中的模型关系建立方式,可在模型配置模块,通过模型关联创建和对应的CIType之间的关系,例如:服务器 包含了网卡和硬盘。

新增业务关系(服务树)
比如我们想知道在事业部 -> 产品 -> 应用的关系链上,物理机和虚拟机的分布情况,可以按照如下的方式定义关系视图:
1. 选择树目录节点
首先点击【新增服务树】按钮,然后勾选树形目录节点,比如事业部 -> 产品 -> 应用


定义关系视图时,请注意树节点必须拥有下级节点,即上图中的资源节点,下级节点将作为table数据展现在关系视图中
2. 填写服务树配置
页面左上角点击【保存】按钮,打开新增服务树弹窗,填写服务树名,勾选公开、树的子节点展示成Table、展示树节点信息等,点击确定按钮即可。

- 服务树名:服务树名称
- 公开:勾选后,当前服务树对所有用户可见。仅公开服务树菜单,服务树数据权限需在服务树页面进行单独授权
- 树的子节点展示成Table:必选,服务树资源节点的详细信息将以Table形式展示
- 展示树节点信息:勾选后,树节点信息也会以Table形式展示
- 顺序:配置树子节点信息和树节点信息在Table中的展示顺序
3. 查看服务树
新增业务关系之后,在菜单栏视图模块,发现新增菜单服务树(您在新增服务树弹窗填写的服务树名)。

服务树左侧目录展示的值默认为模型的唯一标识属性值,也可前往为模型设置展示属性,自定义配置服务树节点的展示属性。
如果需要定制多个服务树,再次按照上述步骤新增业务关系即可。
在服务树页面,您可以进行以下操作:

- 添加下级节点
- 移除当前节点
- 授权、回收权限和查看权限
- 修改当前节点名
- 批量操作:支持对同级节点进行批量授权、回收和移除

服务树权限控制
维易CMDB服务树的权限控制,确保只有经过授权的用户能够访问和操作服务树的相关信息。这样可以保护敏感数据和配置信息,防止未经授权的用户对服务树进行修改或查看,从而提高系统的安全性和数据保护性。同时,权限控制还可以根据用户的角色和职责分配不同的权限级别,确保用户只能访问其需要的信息,提高系统的可控性和管理效率。

服务树节点权限具有向下覆盖的特性,当用户被授予节点权限时,会自动获得子节点的查看权限。
非管理员用户只能访问被授权节点的数据。服务树的节点权限受到服务树权限的约束,与模型配置中的实例权限配置无关。由于服务树底层table数据展示详细,因此服务树底层table数据受服务树权限控制和模型实例权限的交集影响。
多对多
CMDB支持一对一、一对多和多对多的关系来自定义服务树,下面将以一个实例演示多对多关系在服务树中的应用
实例演示
请先按照上文步骤配置一个包含多对多关系的服务树。 接下来以一个实际场景来演示多对多关系在维易CMDB服务树中的应用,模型关系和服务树定义如下图所示:

如上图,整个链路为:环境-> 区域 -> 集群 -> NameSpace -> Node。其中区域和集群、NameSpace和Node的关系为一对多的关系,其余模型之间的关系皆为多对多的关系。
如果服务树存在多对多关系,请勿修改服务树的定义,这将导致现有服务树的数据出现混乱。在定义服务树前,请提前设计好您的使用场景然后规划服务树业务关系。
用上面自定义的服务树,我们可以实现如下场景:

如上图所示,环境Stage和Test都包括了多个区域,且区域上海在这2个环境里的Node数量是不同的,明显环境和区域是多对多的关系。每个区域拥有不同的集群,且一个集群不存在于多个区域里,因此区域和集群是1对多的关系 。同理,集群和namespace之间定义的是多对多的关系,而namespace和node之间定义的是1对多的关系。
通过服务树,我们可以清楚看到资源节点Node在树形目录节点(环境-> 区域 -> 集群 -> namespace)的分布情况,做到一目了然,提升运维效率。