CMDB 是什么意思:配置项、关系模型与机房里的用途
CMDB 是配置管理数据库,记录每一个配置项是什么、在哪里、连着谁、被谁依赖。资产台账回答“有什么”,CMDB 还要回答“动了它会影响谁”,这正是它能用于变更评估和故障定位的原因。
CMDB 是什么意思?CMDB 是 Configuration Management Database 的缩写,中文叫配置管理数据库。它记录一个 IT 环境里所有“配置项”(Configuration Item,CI)——服务器、交换机、IP 地址、操作系统、应用,甚至机柜和客户——的属性,更重要的是记录它们之间的关系:这台服务器放在哪个机柜、接在哪台交换机的哪个端口、用了哪些 IP、跑着哪个客户的业务。有了关系,运维才能在改动之前知道会影响谁,在故障发生时知道往哪里查。
CMDB 的定义:来自 ITIL 的概念
CMDB 这个词来自 ITIL(IT 基础架构库)。ITIL 把配置管理定义为一个流程:识别、记录、控制并核实所有对提供 IT 服务有意义的配置项及其关系。承载这些记录的数据库,就是 CMDB。ITIL 后来又提出配置管理系统(CMS)的概念:大型组织往往不止一个 CMDB,网络、服务器、应用各有各的数据源,CMS 把它们联合起来对外提供统一视图。
从定义里可以拆出三个要素:
| 要素 | 含义 | 例子 |
|---|---|---|
| 配置项(CI) | 需要被管理的对象,有唯一标识 | 服务器 SRV-0231、交换机 SW-A03、IP 103.45.12.37 |
| 属性 | 描述 CI 的字段 | 型号、序列号、CPU、所在机柜、状态、负责人 |
| 关系 | CI 之间有方向的连接 | SRV-0231“位于”机柜 A03;SRV-0231“连接”SW-A03 的 GE1/0/12 |
“配置”这个词容易让人以为 CMDB 存的是配置文件,其实不是。它存的是“这个环境由哪些东西组成、怎么组合”,配置文件本身通常放在版本库里,CMDB 至多记录一个指向它的引用。
配置项有哪些类型
配置项不限于硬件。一个机房常见的 CI 类型:
| CI 类型 | 例子 | 关键属性 |
|---|---|---|
| 场所 | 机房、机柜、U 位 | 地址、供电容量、机柜高度、已用 U 数 |
| 硬件 | 服务器、交换机、路由器、PDU、防火墙 | 型号、序列号、资产编号、BMC 地址、上架日期 |
| 部件 | 硬盘、内存、网卡、电源模块 | 批次、容量、所在设备、返修记录 |
| 网络资源 | IP 段、IP 地址、VLAN、交换机端口 | CIDR、网关、VLAN 编号、端口速率 |
| 软件 | 操作系统、数据库、中间件 | 版本、安装时间、许可 |
| 服务 | 客户订单、对外业务、内部系统 | 客户、SLA、到期时间 |
| 人与组织 | 客户、运维小组、厂商 | 联系方式、负责范围 |
| 文档 | 网络拓扑图、应急预案、合同 | 版本、生效日期 |
每个 CI 都要有一个不重复的标识(资产编号、序列号或系统生成的 ID),关系才有办法引用它。
关系模型:CMDB 和台账的本质区别
台账是一张平面的表,一行一台设备;CMDB 是一张图,节点是 CI,边是关系。常见的关系类型:
| 关系 | 方向 | 例子 |
|---|---|---|
| 位于 | 设备 → 场所 | 服务器 → 机柜 A03 的 U10~U11 |
| 连接 | 端口 → 端口 | 服务器 eth0 → 交换机 GE1/0/12 |
| 上联 | 设备 → 设备 | 接入交换机 SW-A03 → 核心交换机 CORE-A |
| 使用 | 设备 → 网络资源 | 服务器 → IP 103.45.12.37、VLAN 120 |
| 取电 | 设备 → 电源设备 | 服务器 → PDU A03-L 插口 7 |
| 包含 | 设备 → 部件 | 服务器 → 硬盘 D-240311-07 |
| 运行 | 设备 → 软件 | 服务器 → Ubuntu 22.04 |
| 租用 | 客户 → 设备 | 客户 C1024 → 服务器 SRV-0231 |
| 依赖 | 服务 → 服务 | 客户网站 → 数据库实例 |
以一台服务器为中心,它在 CMDB 里长这样:
客户 C1024 ──租用──▶ 服务器 SRV-0231
服务器 SRV-0231 ──位于──▶ 机柜 A03,U10~U11
服务器 SRV-0231 ──取电──▶ PDU A03-L 插口 7 / PDU A03-R 插口 7
服务器 SRV-0231.eth0 ──连接──▶ 交换机 SW-A03 端口 GE1/0/12(VLAN 120)
服务器 SRV-0231.bmc ──连接──▶ 交换机 SW-MGMT-A 端口 GE1/0/12
服务器 SRV-0231 ──使用──▶ 公网 IP 103.45.12.37、IPMI 10.1.16.37
交换机 SW-A03 ──上联──▶ 核心交换机 CORE-A 端口 XGE1/0/3
有了这张图,“交换机 SW-A03 要升级固件”就能顺着“连接”关系反查出接在它上面的全部服务器,再顺着“租用”关系查出客户名单——这就是变更影响分析。
CMDB 有什么用:四个典型场景
变更影响分析。 任何变更申请先问 CMDB:动这个 CI 会波及哪些 CI?例如更换核心交换机 CORE-A 的一块板卡,CMDB 沿“上联”关系找出所有接入交换机,再找出全部服务器和客户,变更通知就有了准确的名单,维护窗口也能按客户 SLA 来定。
故障定位。 客户 C1024 报障说服务器不通。查 CMDB:服务器在 A03 机柜,接 SW-A03 的 GE1/0/12,用 VLAN 120,取电于 A03-L 的插口 7。运维按这条链一路查过去——端口有没有 down、VLAN 对不对、PDU 插口有没有电——比先问客户“你的机器在哪”快得多。反过来,SW-A03 上报端口告警时,也能立即知道受影响的是哪些客户。
资产与生命周期。 服务器从采购、上架、分配、回收到报废,每个状态都对应 CMDB 里的一次更新;硬盘、内存按批次入库,换到哪台机器、什么时候返修,都能追溯。审计时“这台机器现在在哪、谁在用”不用再翻邮件。
容量与合规。 机柜还剩几个 U、哪个 IP 段快用完、哪台 PDU 负载接近上限,都是对 CMDB 的一次汇总查询。等级保护、ISO 27001 一类的审核要求资产清单和网络拓扑与实际一致,CMDB 就是拿出来给审核员看的那份材料。
CMDB 和资产管理系统的区别
两者经常被混为一谈,因为管理对象有重叠(都有服务器),但关注点不同:
| 对比项 | 资产管理系统 | CMDB |
|---|---|---|
| 回答的问题 | 有多少、值多少钱、归谁保管 | 怎么连的、依赖谁、动了影响谁 |
| 管理对象 | 有财务价值的实物:服务器、空调、桌椅、车辆 | 对 IT 服务有意义的一切,包括 IP、VLAN、软件、服务等逻辑对象 |
| 核心字段 | 采购价、折旧、保管人、存放地点 | 属性 + 关系 |
| 驱动流程 | 采购、领用、盘点、报废 | 变更、事件、问题、发布 |
| 更新触发 | 财务或行政事件 | 每一次技术变更 |
| 使用者 | 财务、行政、资产管理员 | 运维、网络、变更经理 |
一个简单的判断标准:桌椅、空调会进资产系统,但不会进 CMDB;VLAN、IP 段、客户订单会进 CMDB,但资产系统不关心。物理服务器两边都有,理想做法是资产编号统一,两个系统靠它对应。
一个小型机房的 CI 模型示例
以一家有 3 排机柜、300 台出租服务器的 IDC 为例,一套够用的 CI 模型只需要 9 类配置项:
| CI 类型 | 数量级 | 必填属性 | 关系 |
|---|---|---|---|
| 机房 | 1~2 | 名称、地址、供电与带宽容量 | 包含机柜 |
| 机柜 | 30 | 编号、高度(U)、所属机房 | 包含设备 |
| PDU | 60 | 编号、所在机柜、额定电流 | 为设备供电 |
| 交换机 | 40 | 型号、管理 IP、所在机柜、U 位 | 上联核心;端口连接服务器 |
| 服务器 | 300 | 资产编号、型号、序列号、BMC 地址、所在机柜与 U 位、状态 | 连接交换机端口;使用 IP;取电于 PDU;归属客户 |
| 部件 | 按批次 | 类型、批次、数量、所在设备 | 包含于服务器 |
| IP 段 / IP | 20 段、5,000 地址 | CIDR、类型、VLAN、网关、状态 | 被服务器使用 |
| VLAN | 50 | 编号、用途、所属交换机 | 承载 IP 段 |
| 客户与订单 | 200 | 客户名、联系方式、到期时间 | 租用服务器 |
命名规则要在建模时定好,例如机柜 A03 表示 A 排第 3 柜,服务器资产编号 SRV-0231,交换机 SW-A03,PDU A03-L 和 A03-R 表示机柜左右两条。名字里带位置信息,看到编号就知道在哪,也不容易录错。
不要一开始就追求完整。上面这 9 类已经能支撑机房日常的排障和变更查询;应用层的中间件、数据库、微服务之间的依赖,等到确实有人要查的时候再加。
CMDB 怎么保持准确
CMDB 失败的原因几乎只有一个:数据和现场不一致,大家不再信它,然后就没人更新了。保持准确靠四件事:
- 自动采集优先。 服务器的 CPU、内存、硬盘用采集脚本探测,交换机的端口状态、MAC 表用 SNMP 读取,设备之间的连接用 LLDP 发现,IP 与 MAC 的对应用 ARP 表核对。人工录入只用来填机器读不到的信息,比如客户和合同。
- 两套数据对照。 人工登记的配置和自动探测的结果同时保留,一旦不一致就产生一条待核实记录,而不是默默覆盖。配件被换过、机器被挪过,都是这样发现的。
- 变更流程绑定。 上架、下架、换端口、改 IP 都必须先在系统里操作,再去现场;未更新 CMDB 的变更单不能关闭。
- 定期审计。 每季度做一次盘点:扫描网段核对在线地址,抽查机柜核对 U 位,把差异清零。
在 IDC 里,这些做法大多已经内置在 DCIM 中。机柜与资产管理按“数据中心 → 机柜 → U 位 → 设备”组织,向服务器下发采集脚本自动获取硬件信息并保留历史,人工录入与探测结果并列对照;IP 地址管理记录每个地址分给了哪台服务器,每个地址段属于哪个 VLAN、网关挂在哪台交换机;服务器列表里能直接看到每台机器接在哪台交换机的哪个端口。对只出租服务器和机柜的服务商来说,这就是数据中心这一层的 CMDB;如果还想了解 DCIM 与动环、资产系统的分工,可以看 DCIM 是什么。
常见问题
CMDB 和 DCIM 是什么关系?
DCIM 管理机房的物理与网络资源,本身就维护着机柜、服务器、交换机端口、IP 之间的关系,可以看作数据中心这一层的 CMDB。企业若还有大量应用、中间件、数据库要管理,才需要在上面再建覆盖应用层的 CMDB。
CMDB 需要记录到什么粒度?
以“变更和排障时会不会查它”为准。机房里记到服务器、交换机端口、IP、PDU 插口这一层足够;硬盘、内存条按批次记录即可,不必每根内存条都建一个配置项。
CMDB 和监控系统是什么关系?
监控系统负责采集指标和产生告警,CMDB 负责告诉监控“这台机器是谁的、接在哪、影响谁”。常见做法是监控从 CMDB 同步对象清单,告警里带上 CMDB 中的机柜、端口和客户信息,故障通知才能直接发给对的人。