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和函数完成扩展 ,保留搜索条件(当前页码,搜索条件)

  

cmdb全总结的更多相关文章

  1. 【 DCOS 】织云 CMDB 管理引擎技术详解

    欢迎大家前往腾讯云技术社区,获取更多腾讯海量技术实践干货哦~ 作者 : 李琦 , 腾讯高级工程师 , 就职于网络平台部.曾负责公司海量运营系统的规划设计,如 TMP.Sniper.GSLB.IDCSp ...

  2. (深度好文)重构CMDB,避免运维之耻

    (深度好文)重构CMDB,避免运维之耻 CMDB,几乎是每个运维人都绕不过去的字眼,但又是很多运维人的痛,因为CMDB很少有成功的,因此我也把它称之为运维人的耻辱. 那么到底错在哪儿了?该如何去重构它 ...

  3. 美团点评基于MGR的CMDB高可用架构搭建之路【转】

    王志朋 美团点评DBA 曾在京东金融担任DBA,目前就职于美团点评,主要负责金融业务线数据库及基础组件数据库的运维. MySQL Group Replication(以下简称MGR),于5.7.17版 ...

  4. 特来电CMDB应用实践

    配置管理数据库(Configuration Management Database,以下简称CMDB)是一个老生常谈的话题,不同的人有不同的见解,实际应用时,因为企业成熟度以及软硬件规模不同,别人的成 ...

  5. 双态运维:如何让CMDB配置维护更贴近人性

    近来很多行业内的大佬关于CMDB连连发声,CMDB的关注度持续高涨,CMDB的前生就是长满雀斑的丑媳妇,扭扭捏捏不受待见这么多年,终于熬出头要见公婆了.哎,她的贤惠谁能懂? 言归正传,在拜读了多篇大牛 ...

  6. CMDB经验分享之 – 剖析CMDB的设计过程

    作为IT管理的核心,CMDB逐渐成为系统管理项目实施的热点.在很多的案例中,由于忽视了CMDB的因素,ITIL的深入应用受到了极大的挑战.同时,由于CMDB是IT管理信息的集中,CMDB也是一个重要的 ...

  7. 转载----开发运维资产管理系统cmdb一些观点扯淡

    在新公司负责全网的自动化运维平台及给各个业务线提供接口数据.这工作和以前做的很类似,也算是比较顺手的工作,这段时候遇见一些问题,导致开发的前进速度的放慢了,具体有哪些的不完善,我这里就先不摆出了,但是 ...

  8. 巨蟒python全栈开发linux之centos1

    1.linux服务器介绍 2.linux介绍 3.linux命令学习 linux默认有一个超级用户root,就是linux的皇帝 注意:我的用户名是s18,密码是centos 我们输入密码,点击解锁( ...

  9. CMDB项目实战

    01-CMDB项目介绍 02-CMDB开发背景 03-CMDB开发目的 04-CMDB资产采集方式之agent 05-CMDB资产采集方式之ssh 06-CMDB资产采集方式之saltstack 07 ...

随机推荐

  1. C++ `endl` 与 `\n` 的区别

    std::cout << std::endl : 插入换行并刷新缓存区 (flush the buffer) std::cout << "\n" : 插入换 ...

  2. (转)vscode实现markdown流程图

    原文:https://blog.csdn.net/LaySwift/article/details/79458947 1,vscode原生支持markdown,导出需要插件,基于node.js,需要n ...

  3. 原生js对cookie的增删改查

    一.增 document.cookie = cname + "=" + cvalue + ";expires=" + expires + ";path ...

  4. Java集合专题

    1.Java 中常用的容器有哪些? 常见容器主要包括 Collection 和 Map 两种,Collection 存储着对象的集合,而 Map 存储着键值对(两个对象)的映射表. Collectio ...

  5. vue关于mock的简单使用

    一.mock 1.简介 mock是一个模拟数据生成器,旨在帮助前端独立于后端进行开发,帮助编写单元测试.其可模拟 Ajax 并返回模拟数据,使前端不用去调用后端的接口,方便测试. 2.vue直接使用m ...

  6. IIFE,回调函数

    回调函数: 当函数A作为一个参数在函数B中被调用时,就称A为B的回调函数 IIFE:匿名函数自调用 (function(){})() 作用:防止污染全局命名空间 隐藏实现

  7. 微信小程序支付功能 C# .NET开发

    微信小程序支付功能的开发的时候坑比较多,不过对于钱的事谨慎也是好事.网上关于小程序支付的实例很多,但是大多多少有些问题,C#开发的更少.此篇文档的目的是讲开发过程中遇到的问题做一个备注,也方便其他开发 ...

  8. [b0044] numpy_快速上手

    1 概念理清 2 创建数组 2.1 f1= np.array( [ [1,2,3,4], [2,3,4,5], [3,4,5,6] ]) 其他代码 a= np.array([ [ [3.4,5,6,8 ...

  9. 微信小程序中换行,空格(多个空格)写法

    在小程序中HTML的网页实体无法正常使用,小程序中的写法为: 一.空格,换行 <text>你好!\t七月流火啊!\n我在下一行</text> \t 空格( 多个只会显示一个空格 ...

  10. docker改变默认存储路径到数据盘(自己实践)

    一.首先将数据盘格式化分区并挂载(文章中提到的sdb(腾讯云)实践中是vdb(阿里云),文章中挂载在ssd目录下,实践中是挂载到data目录下的,后面安装docker部分以后是实践中的记录,上面数据盘 ...