cmdb全总结

1.什么是cmdb ,做什么的?

  配置管理数据库 ,就是存储基础设施的信息配置使用的

  简单说就是CMDB这个系统可以自动发现网络上的IT设备 ,并自动存储相关信息 ,像一台服务器有型号 厂商 系统 cpu 内存 运行了什么应用 属于哪个业务部门使用等等

 

 

 

api系统  资产采集系统  后台管理系统

2.实现三部分之一资产采集系统 

  1)资产采集系统

    采集模式engine

      agent模式

        subprocess模块本地调用命令完成资产采集

        唯一标识试用主机名 + 文件记录主机名共同实现

        定时上报资产数据到api

      中控机模式

        通过api获取主机列表 ,本次去哪些主机采集数据

        paramiko模块通过ssh的协议完成远程调用命令 ,并获取输出结果 ,上报api    

      直接调用issa层api获得信息

 

  2)开放封闭思想 (细节描述!!)

    采集模式可根据配置扩展(agent ssh 阿里 腾讯)

      设计基类约子类必须实现handler 和 cmd的功能 (handler资产采集和上报api ,cmd就是调用命令的窗口subprocess ,paramiko)

    采集的命令插件也可以扩展 (硬盘 网卡 cpu 内存 等等)

      设计基类约束子类必须实现process 和 两种系统 (process返回值采集到的具体数据)

      对数据进行格式化为字典 ,要求与model中字段名对应

  3)其他要点

    异常处理

      使用traceback捕获到错误信息 ,在本地显示可准确显示哪行代码出现的报错 

    日志记录

      直接在公共库创建一个单例日志对象(通过init方法内部封装一个logging对象) ,在需要打印日志的地方直接调用自定义不同等级的日志方法

3.实现三部分之一api系统      

  1)api资产上报到数据库

    客户端

      主要是agent ,agent的唯一标识通过主机名实现 ,agent上报时自身确定 (请求是新增  唯一标识不变 唯一标识改变)

    api服务端

      逻辑部分

        使用django提供的djangorestframework模块实现 (可能会问restful风格)

        新增根据字典中的数据打散提交到数据库 ,同表中数据可以把orm对象放到列表中一次提交

        修改唯一标识变更就先改唯一标识 ,随后修改部分都相同 ,代码重叠放入同一文件引用 ,审计将格式化的数据提交到审计表

      安全部分

        api不能谁都可以访问 ,必须通过校验才能访问 ,校验通过时间戳与key拼接的MD5值来校验(具体说一下? 定义一个类重写dispatch就是CBV中as_view里面的方法 ,把url中带时间与自己的key值拼接生成的MD5与客户端发来的比较 ,验证时间超时? 是否重复使用 ,不匹配都可以直接return拒绝访问)

        数据传输加密 ,就是用非对称加密将公钥给客户端 ,客户端在使用requests模块请求api的时候会用公钥分段加密 ,在服务端会解密 ,

4.实现三部分之一后台管理系统

  1)类似admin的系统

    组件的源码是了解过的 ,实现的功能使用方式都是没问题的 ,是一个app直接注册到django中 ,类似admin把model注册到表中 ,生成4个url和对应的视图函数 ,包括展示前端页面 ,功能展示字段 ,模糊搜索(filter的字段__contains= '关键字')完成 ,组合搜索使用Q查询完成and or的逻辑组合 ,批量操作批量删除更新 ,分页 ,扩展url通过配置类中定义url和函数完成扩展 ,保留搜索条件(当前页码,搜索条件)

 

 

 

 

 

 

  

转载于:https://www.cnblogs.com/quguanwen/p/11562008.html

04-26
<think>好的,我现在需要回答用户关于CMDB配置管理数据库的工具和实现方法的问题。首先,我需要回顾一下用户提供的引用内容,确保回答准确并符合他们的需求。 用户提到了五个引用,其中引用1到3主要解释了CMDB的基本概念、重要性和组成部分。引用4讨论了开源CMDB项目,特别是Open CMDB的应用案例和最佳实践。引用5则涉及实现方法,比如使用Python的paramiko模块、第三方工具如SaltStack,以及API的实现方式。 用户的问题是关于CMDB的工具和实现方法,所以我需要从这两个方面展开。首先,工具部分应包括开源工具和商业产品,比如Open CMDB、iTop、CMDBuild等,这些在引用4和引用5中有所提及。实现方法方面,需要涵盖自研开发的步骤,如数据建模、采集技术(Agent、SSH、API)、数据存储(数据库选择)、关系管理和可视化,这些内容在引用3、4、5中都有涉及。 另外,用户可能对实际应用案例和最佳实践感兴趣,比如资产管理、变更管理等,引用4提到了这些内容,需要整合到回答中。同时,引用5提到的SaltStack和Ansible工具可以作为自动化数据采集的例子,这也是实现方法的一部分。 需要注意用户提到的系统级指令,比如使用正确的中文回答,生成相关问题,以及引用标识。回答结构要清晰,分点说明工具和实现方法,每个部分下再细分不同的选项或步骤,这样用户容易理解。 需要确保所有的LaTeX格式正确,但用户的问题中没有数学公式,可能不需要使用。不过如果有提到版本号或其他可能需要强调的地方,可以适当使用行内格式。例如,工具名称或技术术语可以用$...$突出显示,但根据示例来看,可能不需要,所以保持自然的中文即可。 最后,生成的相关问题需要与CMDB相关,可能包括工具比较、实施挑战、与ITSM整合、数据准确性维护等,这些都能帮助用户进一步探索主题。 总结回答结构: 1. 工具分类:开源、商业、自研平台 2. 实现方法:数据建模、采集技术、存储、关系管理、API开发、可视化 3. 应用场景:引用4中的案例 4. 相关问题:四个左右,覆盖工具选择、挑战、整合、数据维护 现在开始组织内容,确保每个部分都有引用支持,并在末尾添加引用标识。同时保持语言简洁,结构清晰。</think>### CMDB配置管理数据库工具与实现方法详解 #### 一、CMDB核心工具分类 1. **开源工具** - **Open CMDB**:提供Web界面,支持资产管理、变更影响分析和合规性管理,部署方式灵活[^4]。 - **iTop**:集成ITSM功能,支持服务目录管理和工单流程,适合中小型企业[^4]。 - **CMDBuild**:基于工作流引擎,支持自定义数据模型和报表生成,扩展性强[^4]。 2. **商业解决方案** - **ServiceNow CMDB**:支持自动化发现、拓扑可视化和与ITSM深度集成,适合大型企业[^2]。 - **BMC Helix CMDB**:提供AI驱动的关联分析和合规性审计功能[^3]。 3. **自研平台** 通过Python+Django框架开发,结合SaltStack/Ansible实现自动化数据采集,例如: ```python # 使用SaltStack采集服务器信息示例 import subprocess result = subprocess.getoutput('salt "*" cmd.run "lsblk"') ``` #### 二、CMDB实现关键步骤 1. **数据建模** - 定义配置项(CI)类型(如服务器、网络设备、服务),明确属性与关系[^3]。 - 示例模型: $$ \text{CI关系图} = \{ \text{服务器} \rightarrow \text{承载} \rightarrow \text{应用服务}, \text{依赖} \rightarrow \text{数据库} \} $$ 2. **数据采集技术** - **Agent模式**:在主机安装代理程序实时上报数据[^5]。 - **无Agent模式**:通过SSH(Paramiko模块)或API调用(如AWS SDK)采集[^5]。 - **第三方工具集成**:利用Ansible或Zabbix同步资产信息[^5]。 3. **数据存储与关系管理** - 数据库选型:MySQL/PostgreSQL用于结构化数据,Neo4j处理CI关系图谱[^3]。 - 使用图数据库存储依赖关系,快速实现影响分析[^3]。 4. **API与可视化开发** - 提供RESTful API供其他系统(如监控平台)调用[^5]。 - 通过D3.js或Echarts实现拓扑图动态展示[^4]。 #### 三、典型应用场景 1. **变更影响分析** 在升级数据库前,通过CMDB快速识别受影响的应用服务[^4]。 2. **故障溯源** 利用CI关系图谱定位网络中断的根本设备[^3]。 3. **合规审计** 定期导出资产清单验证软件许可证合规性[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值