超详细的CMDB介绍–概念、架构、模型、表设计及开源选择(cmdb go)
概述
今天主要介绍一下CMDB的一些基础内容,感兴趣的朋友可以看看~
一、cmdb是什么?
》》百度百科
配置管理数据库( Configuration Management Database,CMDB)是一个逻辑数据库,包含了配置项全生命周期的信息以及配置项之间的关系(包括物理关系、实时通信关系、非实时通信关系和依赖关系)。
CMDB存储与管理企业IT架构中设备的各种配置信息,它与所有服务支持和服务交付流程都紧密相联,支持这些流程的运转、发挥配置信息的价值,同时依赖于相关流程保证数据的准确性。
在实际的项目中,CMDB常常被认为是构建其它ITIL(Information Technology Infrastructure Library,IT基础架构库)流程的基础而优先考虑,ITIL项目的成败与是否成功建立CMDB有非常大的关系。 70%~80%的IT相关问题与环境的变更有着直接的关系。
实施变更管理的难点和重点并不是工具,而是流程。即通过一个自动化的、可重复的流程管理变更,使得当变更发生的时候,有一个标准化的流程去执行,能够预测到这个变更对整个系统管理产生的影响,并对这些影响进行评估和控制。而变更管理流程自动化的实现关键就是CMDB。
》》个人理解
CMDB本质是一个存储IT基础信息的数据库,目的是为了将内部所有IT资源管理起来,建立一套高质量的IT资源配置主数据。我们可以基于CMDB建设来一步一步实现自动化运维。
二、cmdb架构
CMDB架构分基础资源层架构和应用资源层架构。应用层资源架构把相关的资源以应用为中心实现资源整合。资源及其资源的关系称之为拓扑(应用拓扑、物理拓扑),资源管理方式有人工维护和自动发现两种方式,流程是人工维护的一种复杂场景和手段。
1、基础CMDB建设五原则
1)面向IaaS和PaaS设计,能够管理底层的一切资源。
2)状态控制借助运维流程自动化完成。
3)CI的维护要深度使用自动发现,而不是人工维护。
4)资源信息必须能为上层应用提供服务。
5)必须满足基础资源的CI管理需要。
2、应用CMDB建设七原则
1)提供统一的应用元数据管理能力,和应用类型无关。
2)核心诉求是应用生命周期管理。
3)以应用为中心,而非基础资源为中心。
4)从应用资源的角度构建起与IT资源的弹性关系。
5)为应用资源、动作、状态的统一管理提供支撑。
6)以统一的基础资源层CMDB作为基础。
7)核心场景就是持续交付。
三、CMDB模型设计
模型设计是CMDB建设的重要环节,是CMDB的骨架。它是一个抽象建模的过程,并且应该基于企业IT资源现状以及消费诉求而进行抽象。具体过程如下:
1)环境调研:对企业的组织架构、IT资源类型和规模、IT流程等进行调研,充分了解企业IT资源的现状。
2)模型设计:根据调研的情况进行设计,内容包含模型的对象、模型的属性、模型的关系,这些我们称之为元数据。在构建元数据的过程中,我们遵循以下原则:
- 以应用为中心原则,围绕应用自上而下的进行详细设计;
- 最小化设计原则,即只实现当前运维场景所需要的最小模型集合,避免建模的颗粒度失去控制(强调没有消费场景的对象/属性/关系,不应该存储);
3)模型评审:模型设计好后,需形成规范文档。以便和领导、各个领域的运维管理员进行最终沟通评审,目的是形成一份大家都认可的模型设计,为后续CMDB推行打下基础。
4)模型建立:模型设计评审通过后,我们就可以在CMDB工具中进行建模。因此,CMDB的工具必须具备足够的灵活性,能够根据企业不同的环境灵活定义模型对象、属性及关系。
四、CMDB表结构设计
1、资产总表
2、服务器表
3、网络设备表
4、应用表
5、cpu表
6、内存表
7、硬盘表
8、网卡表
9、raid表
10、厂商表
11、业务线表
12、合同表
13、机房表
14、标识表
15、资产状态表
16、资产上线审批表
五、目前的开源CMDB有哪些
目前主流的开源CMDB软件包括: OneCMDB、CMDBuild、 ltopCMDB、Rapid OSS、ECDB、 i-doit等 ,其中比较出名的是前二者,当然腾讯蓝鲸CMDB也开源了,后面抽空测试一下吧。。
1、OneCMDB
OneCMDB主要面向的是中小型企业。可以作为一个独立的CMDB来保持软件和硬件资产及其相互关系的轨道。由于其具有开放的API ,因此其也可以是拥有灵活的强大的配置管理引擎的其他服务管理软件。
OneCMDB易于安装和填充数据,它有一个无需用户具有编程能力就能改变和增强的数据模型,它能让用户轻松做到如下几点:
1)创建CMDB数据模型,而无需写代码。
2)填充数据,可以通过网络自动发现。
3)通过各种灵活的导入和转换机制来从外部源获取信息。
4)导入/导出网络配置信息从/到Nagios网络监控系统。
>>OneCMDB也有如下一些缺点:
1)纯英文操作界面,增加了误操作率。
2)只支持从Nagios系统自动发现导入。
3)现在该产品基本无人维护。
4)UI可定制化低。
2、CMDBuildS
CMDBuild是一个通过Web界面配置的CMDB系统。可以通过Web界面来进行建模、创建资产数据库,并处理相关的工作流程。
CMDBuild可用于集中管理数据库模块和外部应用:自动库存、文档管理、文本处理、目录服务、电子邮件、监控系统、用户网站、其他信息系统等。
CMDBuild应该是使用者比较多的一款产品,它具有如下优点:
1)Ajax操作十分便捷(采用了ExtJS作为支持)。
2)数据格式自由定制(在GLPI中,资产的数据格式都已经定义好了,用户很难再做修改 )。
3)支持多种开源标准( XPDL)。
4)可以自定义Workflow ,便于ITIL。
5)有专门的团队在不断进行维护
6)SOAP和RES T的WebService接口。
3、RapidOSS(基于RapidCMDB技术)
一种实用的解决方案。它不与传统的CMDB产品竞争。它从头开始设计为联合解决方案(而不是事后的想法),以便轻松利用现有系统和数据源。RapidOSS是一个用于IT运营管理的集成,自动化和演示套件。它将领先的Web技术引入IT管理领域,从一开始就设计为一个开放式解决方案,以最大限度地缩短实施时间和总体拥有成本,并最大限度地提高技能重用率。
4、i-doit
基于ITIL指南的IT文档系统。它记录了IT系统及其变更,定义了应急计划,显示了重要信息,并有助于确保IT网络的稳定和高效运行。i-doit允许以结构化方式从墙壁插座向主机提交大量技术信息。每个员工都可以通过Web浏览器轻松(并以选择的方式)访问此信息。由于其模块化架构,可以部署功能附加组件或开发扩展。
后面会分享更多devops和DBA方面内容,感兴趣的朋友可以关注下!