设计 CMDB 资产管理系统
需求分析
CMDB(Configuration Management Database)是运维平台的核心,管理所有 IT 资产及其关系。
核心功能:
- 资产录入与发现(服务器、网络设备、中间件、应用)
- 资产关系管理(拓扑图)
- 变更追踪与审计
- API 供其他系统调用(监控、发布、工单)
数据模型
架构设计
关键设计点
灵活的模型定义
使用模型驱动设计,资产类型和属性可动态配置:
- CI Type(配置项类型):服务器、数据库、应用、网络设备
- CI Attribute(属性定义):每个类型有不同的属性字段
- CI Instance(实例):具体的资产,存储为 JSON 灵活扩展
自动发现
# Agent 定期上报(安装在每台服务器)
# 采集:IP、CPU、内存、磁盘、操作系统、运行进程
# 上报频率:增量 5 分钟,全量 1 小时
变更审计
每次资产变更记录 diff,谁在什么时间改了什么字段,支持按时间线回溯。
常见面试问题
Q1: CMDB 数据不准确怎么办?
答案:
CMDB 最大的挑战是数据准确性。解决方案:
- 自动发现优先:Agent 采集 + 云 API 同步,减少人工录入
- 周期性校验:自动比对 CMDB 数据与实际资产,标记不一致项
- 变更源头管控:所有变更必须通过 CMDB API(发布系统、工单系统調用 CMDB),禁止绕过
- 责任人机制:每个资产有明确责任人,定期确认