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

      

  • 相关阅读:
    virtualenv建立新的python环境
    c++ 类构造函数&析构函数
    Spring中的BeanPostProcessor和BeanFactoryPostProcessor
    01 | 日志段:保存消息文件的对象是怎么实现的?
    linux 常用命令大全
    select/poll/epoll
    Redis 数据结构 api操作复杂度 ~~~~
    Redis底层数据结构----1 结构与命令
    Linux进阶系列 1 --- 进程通信
    让我们来写个算法吧,(6);链表排序
  • 原文地址:https://www.cnblogs.com/quguanwen/p/11562008.html
Copyright © 2020-2023  润新知