首页
登录 | 注册

【Python项目】CMDB的搭建01(了解CMDB)

对于CMDB搭建这个项目,我希望通过几篇或者几十篇的文章来详细描述搭建及使用过程,以便自己日后重温,同时也希望感兴趣的朋友能够评论指导。

一、CMDB 是什么?

作为 IT 工程师的你想必已经听说过了,或者已经烂熟了,容我再介绍一下,以防有读者还不知道。

CMDB 的全称是 Configuration Management Data Base,翻译下就是配置管理数据库,它存储与管理企业 IT 架构中设备的各种配置信息,它支撑服务流程的运转、发挥着配置信息的价值。在今天,无论是自动化运维、标准化运维、DevOps、甚至是时髦的智能运维,其实都离开不 CMDB,可以说 CMDB 是运维体系的基石,有了配置信息数据库,后面各种标准、流程都可以建立在 CMDB 基础之上,从而实现真正的标准化、自动化、智能化运维,节约运维成本的同时,也降低运维流程混乱带来的操作风险。

二、CMDB的重要性

在实际的项目中,CMDB常常被认为是构建其它ITIL流程的基础而优先考虑,ITIL项目的成败与是否成功建立CMDB有非常大的关系。
70%~80%的IT相关问题与环境的变更有着直接的关系。实施变更管理的难点和重点并不是工具,而是流程。即通过一个自动化的、可重复的流程管理变更,使得当变更发生的时候,有一个标准化的流程去执行,能够预测到这个变更对整个系统管理产生的影响,并对这些影响进行评估和控制。而变更管理流程自动化的实现关键就是CMDB。

为什么70%~80%的IT现骨干问题与环境的变更有着直接的关系,举例来说,如果在较大的公司中比如百度,比如两个部门一个是百度地图一个是百度贴吧!因为如果系统比较庞大的话,没有一个人能完完全全的了解整个系统的架构,如果在这种情况下,百度地图的同学修改了一个借口,那么他不知道是否影响百度贴吧。万一百度贴吧有调用呢!所以在这种情况下就需要一个存储着整个系统架构和对应关系的系统,记录着它们之间的关系映射!

三、CMDB的主要功能

所以CMDB中至少包含如下的功能:整合、调和、同步、映射和可视化。

  • 整合是指能够充分利用来自其他数据源的信息,对CMDB中包含的记录源属性进行存取,将多个数据源合并至一个视图中,生成连同来自CMDB和其他数据源信息在内的报告;
  • 调和能力是指通过对来自每个数据源的匹配字段进行对比,保证CMDB中的记录在多个数据源中没有重复现象,维持CMDB中每个配置项目数据源的完整性;自动调整流程使得初始实施、数据库管理员的手动运作和现场维护支持工作降至最低;
  • 同步指确保CMDB中的信息能够反映联合数据源的更新情况,在联合数据源更新频率的基础上确定CMDB更新日程,按照经过批准的变更来更新 CMDB,找出未被批准的变更;
  • 应用映射与可视化,说明应用间的关系并反应应用和其他组件之间的依存关系,了解变更造成的影响并帮助诊断问题。

并且在做自动化的前提是标准化,我们在做CMDB的时候就相当于做标准化的过程,并能仅仅告诉研发和运维同学怎么怎么做,如果没有一个系统强制要求他这样做那么之前的流程和标准对于运维和研发来说他们已经习惯了,是很难实施的!

四、cmdb的开发需要包含三部分功能:

  • 采集硬件数据
  • API
  • 页面管理

执行流程:服务器的客户端采集硬件数据,然后将硬件信息发送到API,API负责将获取到的数据保存到数据库中,后台管理程序负责对服务器信息的配置和展示。

4.1、采集硬件信息可以有两种方式实现:

  1. 利用puppet中的report功能
  2. 自己写agent,定时执行

两种方式的优缺点各异:方式一,优点是不需要在每台服务器上步一个agent,缺点是依赖于puppet,并且使用ruby开发;方式二,优点是用于python调用shell命令,学习成本低,缺点是需要在每台服务器上发一个agent。

4.1、API

  • REST与技术无关,代表的是一种软件架构风格,REST是Representational State Transfer的简称,中文翻译为“表征状态转移”
  • REST从资源的角度类审视整个网络,它将分布在网络中某个节点的资源通过URL进行标识,客户端应用通过URL来获取资源的表征,获得这些表征致使这些应用转变状态
  • 所有的数据,不过是通过网络获取的还是操作(增删改查)的数据,都是资源,将一切数据视为资源是REST区别与其他架构风格的最本质属性
  • 对于REST这种面向资源的架构风格,有人提出一种全新的结构理念,即:面向资源架构(ROA:Resource Oriented Architecture)

4.3、后台管理界面

后台管理页面需要实现对数据表的增删改查。



2020 jeepxie.net webmaster#jeepxie.net
10 q. 0.009 s.
京ICP备10005923号