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 中的機櫃、連接埠和客戶資訊,故障通知才能直接發給對的人。