ONECMDB资料整理

1.   OneCMDB概述

OneCMDB是一个用于数据中心的配置管理库,用于存储硬件、软件、服务、用户、事件、问题、变更请求、文档等信息。OneCMDB遵从IT管理的最佳实现ITILOneCMDB可以直接使用,也可以开发自己的应用扩展OneCMDB功能,比如开发自己的用户界面、添加/修改业务逻辑、修改系统内部接口等。但是有一点要注意到是OneCMDB遵循的是GPL协议。

OneCMDB主要包括两个部分:

l  OneCMDB Core

l  OneCMDB Desktop

OneCMDB Core是一个后台服务器,实现业务逻辑和存在功能,OneCMDB DesktopOneCMDB Core提供一个基于web的用户界面。

 

 

 

 

 

 

 

 

 

2.   Configuration Items(CI)

2.1.  内部属性

内部属性是CI固有的属性,存储的CI信息通常在CI创建的时候设置,以后很少修改。

1.  Id属性由CMDB分配,不可改变,是CI的唯一标识。

2.  Alias属性用于CI导入导出或者在菜单显示时,不同CI实例相互区别,Alias属性不能包含特殊字符和空格

3.  Displayname属性用于CI在用户界面的简短文本显示,可以包含变量和空格

4.  Description属性用于CI的长文本显示

5.  Template Option属性用于设置模版

6.  Icon属性保存CI在图形界面显示时选用的图片

2.2.  用户自定义属性

为了在CI中存储用户数据,首先应该在CI中添加用户自己定义的属性。用户需要什么属性完全取决于你需要在CMDB 什么信息。下面是一个描述Server CI的简单例子:

2.3.  属性值类型

当你创建属性的时候必须设定属性值的类型,属性值包含两种类型:

简单类型和复合类型

简单类型指原始数据类型,如stringinteger

复合类型指另外一个CI的引用,用于描述与别的CI间的关系。

2.4.  属性值列表

简单类型和复合类型都可以是属性值类表。对于CI实例来说一个叫"Ip_addresses"的属性可以包含一组string值,一个叫"Harddisks"的属性,可以包含一组到硬件CI的引用。

3.   引用

引用是到另一个CI的指针,使用引用有如下好处:

1.   如果同一份数据被许多CI持有,那么很难维护该数据。然而我们可以将该数据放入一个CI中,让其他CI都持有该拥有数据的CI,这样如果要修改该数据,在ONECMDB中只需要更新一个CI

2.   如果你想知道有哪些CI依赖某个特定CI,可以通过引用实现。假设你要关闭一个网络交换机,如何知道哪些服务器会受影响?让交换机CI持有所有他连接的服务器CI,那么通过ONECMDB的图形界面可以自动列出所有依赖于该交换机的服务。

3.   引用有助于发现数据中心的错误配置。假设一个外网IP只能分配给一个服务器。在每IP CI项中存储一个一个不同的IP地址,每个服务器CI持有自己使用的IP地址对应的IP CI。通过计算每个IP CI项的引用数量,ONECMDB可以自动发现被多台服务器使用的IP地址。

4.    ONECMDB可以处理多种不同的引用,如Installed On或者Depends On引用的类型在OneCMDB模型文件中定义并在模版中描述。你可以定义自己的引用类型,这样做有如下好处:

Ø   影响分析,起作用的典型情况如处理变更请求或者处理主动事件。比如要区分“这个系统对提供服务是必须的”和“这个子系统对提供服务是有用的”。

Ø   过滤依赖关系,如果你试着图像化一组CI的依赖关系,你会发现由于CI关系的复杂性视图很难描述得清。这时你可以选择只描述CI间的某一种关系比如硬件依赖关系,这样视图会变得更简单易于理解

4.   策略

OneCMDB中策略用于控制CI如何处理变更。有三种默认策略:

CI策略

属性策略

事件策略

策略触发器用于提交对指定CI的定义策略,显然你必须重启ONECMDB才能使策略变化生效,仅仅提交是不够的。

注意:现在不支持通过Desktop定义或者修改策略,如果要修改策略必须通过System View编辑每个对象。

4.1. CI策略

控制CI的更新规则,更新指创建、删除、添加属性等

4.2.  属性策略

控制属性的更新规则

4.3. 事件策略

用户自己开发策略,意味着一个java类中的方法会被调用。通过事件策略用户有足够的自由做自己想做的。

4.4.  策略触发器

用于建立各种策略(CI策略、属性策略、时间策略)与指定的CI模版之间的连接,策略可以用于模版及实例且可以被其子模版及实例继承。

在现在OneCMDB版本中,策略触发器只能被分配给模版不能分配给实例,这将在以后的版本中修正。

5.   任务和触发器

任务是OneCMDB为完成各种任务调用的内部实现。任务以CI中存储的数据作为输入参数,输出参数则反馈到新的或已经存在数据库中的CI中。

任务在OneCMDB的模型文件中定义,一个任务是否可以用取决于使用的是哪个数据模版,任务可以手工触发执行也可以计划执行。

 

6.   变更日志

OneCMDB会自动记录对每个CI的每次单独变更并保存在变更日志中。每个变更会被分配一个唯一的请求变更ID(Request for Change ID),当OneCMDB中的多个变更同时执行时,它们会被分配一个事务ID(TX-ID)

7.   模板

模版是其他CI创建的蓝图

使用模版有如下好处:

1.   创建新的CI更简单,简单是因为不需要每次从头开始创建CI并添加属性。

2.   批量更新一组属性更方便,模版与基于其上创建的CI之间存在内部关联。比如,当你添加一个新的属性到模版,属性也会被添加到所有已经存在的基于该模版的CI实例,你可以用它来约束某一组基于同一模版的CI实例。

7.1.  继承

继承指当CI实例创建时模版中的属性可以被复制到一个基于该模版的新CI实例,同时对模版进行的修改,也将影响到所有基于该模版的CI实例,如前面提到的这种情况是通过配置策略控制的。

以下是使用继承的的几个规则:

1.   一个CI可以且只能继承自一个模版

2.   一个模版可以继承自其它模版

请注意在用户手册和图形界面提到继承时,不同的词语表达,有时用based on,有时用descendant或者offspring

8.   模型

8.1.  模型概念

OneCMDB使用模型来定义CMDB的结构。每个模型都由几个部分组成,模版定义、引用、CI实例等。你可以一次导入一个或多个模版,这取决于用OneCMDB来做什么及OneCMDB包含什么内容。你可以导入带有更多新的CI实例、新结构或者新功能的模型,也导出现有模型作为备份或者重用。

OneCMDB自带多个具有系统关联信息和系统配置信息的模型,这些模型通常自动导入,用户不用关心。只有打算扩展OneCMDB的功能或者创建一个使用OneCMDB的应用程序,才可能用得上这些模型。

8.2.  模型文件

模型文件存储在xml文件中,可以使用任何文本编辑工具进行编辑。当然也可以用OneCMDB Desktop来管理模型文件。一个OneCMDB模型由一个或者几个模型文件描述,比如一个模型文件来描述模版,另一个模型文件描述CI实例。

8.3. 模型选择

OneCMDB现在的发行版本带有一个基本模型,可以用作学习CMDB项目的开始,一个NMAP模型可以配合NMAP自动发现系统的开发,一个Nagios模型可以配合Nagios监控系统的开发

猜你喜欢

转载自cmjcmj8080.iteye.com/blog/1062037