CMDB

  • CMDB项目

    1. 为啥要做CMDB?

      a.项目开发和上线场景:

      流程:
          产品经理调研需求 =====>  定一个时间开发 ======> 测试() ====> 产品项目上线(运维) 
      ​
      传统做法:
          运维解压文件, 部署到相对应的服务器目录下面
          
      存在问题:
          - 效率不高
          - 不能实现覆盖有Bug的代码
          
      解决方法:
          代码上线系统
          
          必要条件:
              服务器的IP地址, 硬盘空间, CPU的使用率, 内存等

      b.监控服务器:

      传统做法:       
          shell脚本来去做
      ​
      问题:
          - 不能实时
          - 不能自动化
      ​
      现在做法:
          
          后台用Python去做, 收集一下服务的元信息(IP地址, 硬盘大小, 内存)
          
          前台配合kibana

      c. 装机服务:

        服务器装操作系统 (centos)
          
          现在做法:
              自动装机服务
              
              也得知道一下, 服务的元信息 IP地址

      d. 年底统计:

       之前做法:
              使用excel统计
              
          存在问题:   
              - 不能实时, 需要对变更进行记录
          
          现在做法:   
              
              统计资产的系统
              
              还得需要收集服务器的各种信息, 需要实时的汇报变更记录
    2. CMDB: 资产管理系统

      业界方案都差不多

      本质上就是: 收集服务器的各种信息

       

    3. 开发CMDB的思路和大概做法:

      • 使用Python代码执行linux的命令, 并且获取服务器上的对应信息

      • 使用Http协议发送执行好的数据

    4. CMDB的四套方案 (业内)

      - agent模式
    5.  优点:速度快
      
       缺点:每次都需要部署
          
       适用的场景:
           服务器数量特别多的情况
      - ssh类模式
       缺点:使用paramiko登录服务器的话, 速度比较慢
          
       优点: 不需要部署agent脚本
      ​
       适用场景:
              服务器比较少 (100

       - saltstack

      优点: 不用写Python代码
          
          使用场景: 
              - 服务器上已经部署了salt-stack或者想要使用salt-stack

       

    6. 开发的时候选择哪套方案?

      • 三套方案全部实现

    https://lupython.gitee.io/2018/05/05/CMDB介绍/

     

     

     

     

     

     

     

 

 

 

 

 

 

 

 

 

 

posted @ 2022-03-10 23:37  甜甜de微笑  阅读(68)  评论(0编辑  收藏  举报