title: CMDB author: Gamehu tags:
DevOps
之前有提过现阶段要把之前的产品推翻重做,做带中台调性的新监控。其中一块核心的内容就是CMDB,虽然CMDB的设计主要是架构师以及后端同学的活,但是架不住我爱掺合啊,这块的前端是我来弄,所以也有正当理由摸鱼撒。所以简单也做个记录,稍微深入的了解下CMDB这玩意,也不能细说一个是我没那么精通另一个我不得保护我们的产品知识产权吗不然老板不把我弄死啊...跑题了。
CMDB刚开始接触的时候我把它笼统的理解为资产管理,当然这种理解肯定是不对的,太局限。
因为我们的产品大多数情况下都是部署在客户的内网,CMDB在我们产品中的定位:
识别运维对象,主要分为两个部分:
基础设施层面:网络设备、服务器、存储设备等;
应用层面:应用元信息、告警配置信息等
当我们识别出运维对象和对象间的关系,并形成了统一的标准之后,接下来要做的事情就是将这些标准固化,固化到信息管理平台中,也就形成了我们说的CMDB(配置管理)。
思路跟下图很像,从消费场景入手,识别对象以及对象具有的元素应该有哪些。
{% asset_img 1.jpg 公众号-高效运维 %}
{% asset_img 2.png 公众号-高效运维 %}
最终细化一下会识别出几种类型,一个是基础资源对象,一个是应用对象,一个是逻辑对象(组织和人),把这几种类型对象按照相应的规则的建立关系,从而管理属性、关系、状态、场景。
前一小结确定了运维对象识别的核心思想,其中一个大的作用就是指导资源发现,我们第一版的发现的方式包含两种:
网络拓扑发现(自动):通过SNMP扫描网络,发现其中的网络设备,并判定其间的网络连接关系。
指定类型发现(人工或者流程):用户指定资产类型,发现时不需要依据判定规则。
下图是我傍的一个后端大佬画的,我悄悄盗过来,镇场面。
classDiagram
class 发现规则 {
+ 判定规则
+ 收集规则
}
任务 "1" -- "N" 任务执行
发现代理 -- 发现结果
任务执行 -- 发现代理
任务执行 -- 资产数据
资产数据 -- CMDB
发现规则 -- 发现代理
全局例外 -- 发现代理
SNMP特殊判定 -- 发现规则
任务 "1" -- "N" 连接信息
首先明确一点,以应用为中心,从应用的视角去看,从应用的角度构建资源管理的关系(拓扑关系)。
看了几篇相关的文章基本上,关系类型可简化为下面几种:
依赖关系和连接关系有什么不同?
{%asset_img 3.png 公众号-互联网运维杂谈 %}
我们产品第一版关系设计跟上诉差不太多,只是叫法有一些区别。
比如主从关系:属于、包含。
依赖关系:运行在
连接关系:连接
由于各种原因,大概就整理这么多。
大体围绕CMDB的设计思路如下图。
{%asset_img 4.png me %}
设计的时候考虑的要点:
领域分析是核心,除非有必要,不然不考虑技术实现。
本文引用的图片,如有侵权请联系我删除。
{% blockquote 优维科技 高效运维 https://mp.weixin.qq.com/s?__biz=MzA4Nzg5Nzc5OA==&mid=2651674578&idx=2&sn=939e98e465b7f1a7bb0b241027a46515&chksm=8bcb947bbcbc1d6d5a4928f209f81aede528233f9b0657dd931735d5730c57674885099cd2f7&mpshare=1&scene=1&srcid=0819MkW8c80sVuYCmwUpP13Z&sharer_sharetime=1597831810952&sharer_shareid=77df2eafd0a472623696abf038541666&version=3.0.27.2701&platform=win&rd2werd=1#wechat_redirect 构建应用CMDB需掌握的三个要素:资源、动作和状态 %} {% endblockquote %}
{% blockquote 老王 互联网运维杂谈 https://mp.weixin.qq.com/s/iSEw5eVrTrHXjrHP0b1K0g?st=E6D56F7C7B073C5CA0BE786C5363D3A81166FAEBE74EB9D48310237737FC81BD8E64D2FFDEEFBC38EDA177DA423B6883F2B6561AE7376BE1C85EFBCD908AA2B3DE7BB684878EFBE2E586376BB913EE53E2D08AA0984CD4DFBD27CCDCF0F8AAB16CBDC85E4AB545F1397E0650A753DB1066E4FC0020796E606A4D511395EC7BC2&vid=1688851803314412&cst=3B9A8FB5F8073A54B16F68BFD18A87478E098A6169FFDD65418DADA3EC51851EC020FA4E767BF96883B70D4BC62638E2&deviceid=c9cb6c9b-5ea8-4bb7-87a6-280f14284b4f&version=3.0.27.2701&platform=win 如何理解CMDB的套路 %} {% endblockquote %}
{% blockquote 资源模型 https://zstack-cn.readthedocs.io/zh/latest/userManual/resource.html zstack%} {% endblockquote %}