乐于分享
好东西不私藏

CMDB建模设计(企业级模板)

CMDB建模设计(企业级模板)

👉 AIOps / Lightspeed / 自动化闭环

这版是“架构师级模板”,包含:

  • ✔ 数据模型(可直接建表)
  • ✔ 关系模型(支持RCA)
  • ✔ AI增强字段(支持自动修复)
  • ✔ 落地规范(避免变“摆设CMDB”)

一、CMDB整体建模框架(顶层设计)

🎯 分层模型(必须按层设计)

L1:资源层(Host / VM / Container)L2:平台层(K8s / 中间件)L3:应用层(Application)L4:服务层(Service,业务视角)L5:关系层(依赖 / 调用链)

👉 核心思想:

从“机器视角”升级为“业务视角”


二、核心实体模型(标准模板)


🧩 1️⃣ 主机模型(Host)

Host:  id: string  hostname: string  ip: string  os: string  os_version: string  cpu: int  memory: int  disk: int  env: prod/test/dev  idc: string  status: active/inactive  owner: string  create_time: datetime


🧩 2️⃣ 容器/虚拟化模型

VM:  id: string  host_id: string  hypervisor: kvm/vmware  status: running/stoppedContainer:  id: string  image: string  node: string  namespace: string  status: Running/Pending


🧩 3️⃣ 应用模型(Application)

Application:  id: string  name: string  type: nginx/java/python  version: string  deploy_type: vm/container  port: int  config_path: string  log_path: string  owner: string  status: running/stopped


🧩 4️⃣ 服务模型(Service)⭐核心

👉 面向业务(必须有)

Service:  id: string  name: string  business: string  critical_level: P0/P1/P2  sla: float  owner: string


🧩 5️⃣ 数据库模型(Database)

Database:  id: string  type: mysql/redis  version: string  endpoint: string  cluster: true/false  role: master/slave  owner: string


三、关系模型设计(最核心)

👉 没有关系 = CMDB无价值


🔗 1️⃣ 部署关系(Deployment)

Application → Host / Container


🔗 2️⃣ 服务依赖关系(Dependency)⭐最关键

Service A → Service B

👉 示例:

Web → App → MySQL


🔗 3️⃣ 应用连接关系

Application → Database


🔗 4️⃣ 网络关系

Host → Host(端口/协议)


🔗 5️⃣ 容器关系

Pod → NodePod → Service


四、数据库表结构设计(可直接用)


📊 1️⃣ 主机表

CREATETABLE cmdb_host (  id INTPRIMARYKEY,  hostname VARCHAR(64),  ip VARCHAR(32),  os VARCHAR(64),  env VARCHAR(16),  owner VARCHAR(64));


📊 2️⃣ 应用表

CREATETABLE cmdb_app (  id INTPRIMARYKEY,  name VARCHAR(64),  host_id INT,  port INT,  status VARCHAR(16));


📊 3️⃣ 服务表

CREATETABLE cmdb_service (  id INTPRIMARYKEY,  name VARCHAR(64),  business VARCHAR(64),levelVARCHAR(8));


📊 4️⃣ 关系表(核心)

CREATETABLE cmdb_relation (  id INTPRIMARYKEY,  source_type VARCHAR(32),  source_id INT,  target_type VARCHAR(32),  target_id INT,  relation_type VARCHAR(32));

👉 relation_type 示例:

deploys / depends / connects


五、AIOps增强字段(关键差异点)


🧠 1️⃣ 标签系统(AI识别)

tags:  - nginx  - web  - high-traffic


🧠 2️⃣ Runbook绑定(自动修复)

runbooks:  cpu-high: restart-app  disk-full: clean-log


🧠 3️⃣ 告警策略

alerts:  cpu: 90  memory: 80  disk: 85


🧠 4️⃣ 健康检查

health_check:  type: http  url: /health


🧠 5️⃣ 拓扑缓存(AI加速)

topology_cache: true


六、CMDB + Lightspeed 联动设计(重点)

结合:

  • Red Hat Lightspeed

🔁 AI分析流程

告警:CPU高Lightspeed分析日志查询CMDB:  当前应用属于哪个Service?  上下游是谁?判断:  是否是依赖服务问题?输出:  根因 + 修复建议


🎯 真实案例

告警:Nginx 502CMDB:  nginx → app → mysqlAI判断:  app异常(不是nginx)执行:  重启app


七、落地实施路线(企业级)


🧩 第一阶段(1个月)

  • 建立最小模型:
    • Host + App + Service + 关系

🧩 第二阶段(2个月)

  • 接入监控(Prometheus/Zabbix)
  • 绑定CMDB

🧩 第三阶段(3个月)

  • 接入自动化:
    • Ansible

🧩 第四阶段(持续)

  • 接入AI(Lightspeed)
  • 实现闭环

八、企业常见失败点(必须避坑)


❌ 1️⃣ 只做资产,不做关系

👉 无法做RCA


❌ 2️⃣ 数据不更新

👉 CMDB变“垃圾库”


❌ 3️⃣ 没有自动化

👉 无法闭环


❌ 4️⃣ 没接入监控

👉 AI无数据


九、架构师总结(建议背)

👉 企业级CMDB本质三句话:

1️⃣ 描述资源(有什么)2️⃣ 描述关系(依赖谁)3️⃣ 支撑决策(怎么修)


十、给你一个“高级加分点”(很关键)

👉 把CMDB升级为:

CMDB → 拓扑图 → 知识图谱(Graph)

👉 结合AI:

实现“自动根因分析(RCA)”