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和函数完成扩展 ,保留搜索条件(当前页码,搜索条件)
cmdb全总结的更多相关文章
- 【 DCOS 】织云 CMDB 管理引擎技术详解
欢迎大家前往腾讯云技术社区,获取更多腾讯海量技术实践干货哦~ 作者 : 李琦 , 腾讯高级工程师 , 就职于网络平台部.曾负责公司海量运营系统的规划设计,如 TMP.Sniper.GSLB.IDCSp ...
- (深度好文)重构CMDB,避免运维之耻
(深度好文)重构CMDB,避免运维之耻 CMDB,几乎是每个运维人都绕不过去的字眼,但又是很多运维人的痛,因为CMDB很少有成功的,因此我也把它称之为运维人的耻辱. 那么到底错在哪儿了?该如何去重构它 ...
- 美团点评基于MGR的CMDB高可用架构搭建之路【转】
王志朋 美团点评DBA 曾在京东金融担任DBA,目前就职于美团点评,主要负责金融业务线数据库及基础组件数据库的运维. MySQL Group Replication(以下简称MGR),于5.7.17版 ...
- 特来电CMDB应用实践
配置管理数据库(Configuration Management Database,以下简称CMDB)是一个老生常谈的话题,不同的人有不同的见解,实际应用时,因为企业成熟度以及软硬件规模不同,别人的成 ...
- 双态运维:如何让CMDB配置维护更贴近人性
近来很多行业内的大佬关于CMDB连连发声,CMDB的关注度持续高涨,CMDB的前生就是长满雀斑的丑媳妇,扭扭捏捏不受待见这么多年,终于熬出头要见公婆了.哎,她的贤惠谁能懂? 言归正传,在拜读了多篇大牛 ...
- CMDB经验分享之 – 剖析CMDB的设计过程
作为IT管理的核心,CMDB逐渐成为系统管理项目实施的热点.在很多的案例中,由于忽视了CMDB的因素,ITIL的深入应用受到了极大的挑战.同时,由于CMDB是IT管理信息的集中,CMDB也是一个重要的 ...
- 转载----开发运维资产管理系统cmdb一些观点扯淡
在新公司负责全网的自动化运维平台及给各个业务线提供接口数据.这工作和以前做的很类似,也算是比较顺手的工作,这段时候遇见一些问题,导致开发的前进速度的放慢了,具体有哪些的不完善,我这里就先不摆出了,但是 ...
- 巨蟒python全栈开发linux之centos1
1.linux服务器介绍 2.linux介绍 3.linux命令学习 linux默认有一个超级用户root,就是linux的皇帝 注意:我的用户名是s18,密码是centos 我们输入密码,点击解锁( ...
- CMDB项目实战
01-CMDB项目介绍 02-CMDB开发背景 03-CMDB开发目的 04-CMDB资产采集方式之agent 05-CMDB资产采集方式之ssh 06-CMDB资产采集方式之saltstack 07 ...
随机推荐
- java基础(3):变量、运算符
1. 变量 1.1 变量概述 前面我们已经学习了常量,接下来我们要学习变量.在Java中变量的应用比常量的应用要多很多.所以变量也是尤为重要的知识点! 什么是变量?变量是一个内存中的小盒子(小容器), ...
- 资深程序员告诉你为什么要用Python3而不是Python2
经常遇到这样的问题:<现在开始学习python的话,是学习python2.x还是学习python3.x比较好?>,这也是许多初学者会遇到的问题,我们的答案是python 3.x. 为了帮助 ...
- jq初始,选择器,事件,内容操作,样式操作
jq操作页面文档http://jquery.cuishifeng.cn/ jq初始 <!DOCTYPE html> <html> <head> <meta c ...
- C#实现Java的DigestUtils.sha256Hex
代码地址:DotNetCore_Practice/JavaToC#/DigestUtils at master · PuzzledAlien/DotNetCore_Practice public cl ...
- 用IIS进行部署,发布网页,运行DEMO
因项目需要,正在学习如何部署IIS服务,并发布网站,发布以后,运行网页,具体步骤如下: 一.IIS的部署 在进行部署前,需要将一些必要的配置选好,如图: 打开选项,进行设置,将箭头部分进行勾选 在wi ...
- CQRS(Command and Query Responsibility Segregation)与EventSources实例
CQRS The CQRS pattern and event sourcing are not mere simplistic solutions to the problems associate ...
- java8-07-方法引用总结
一:方法引用 如果Lambda体中的内容 已经有方法实现了 我们可以使用"方法引用" (可以理解为 ...
- Django celery 使用
0.安装包 cachetools 3.1.1 celery 3.1.26.post2 celery-with-redis 3.0 certifi 2019.9.11 Django 2.2.6 djan ...
- LeetCode 5273. 搜索推荐系统 Search Suggestions System
地址 https://leetcode-cn.com/problems/search-suggestions-system/ 题目描述给你一个产品数组 products 和一个字符串 searchWo ...
- C语言中,嵌套的if语句的一些经验...
double f(double x){double result;if(x<0)result=-x+sin(x);else if(x==0)result=0; else if(10> ...