CMDB
-
-
为啥要做CMDB?
a.项目开发和上线场景:
流程: 产品经理调研需求 =====> 定一个时间开发 ======> 测试() ====> 产品项目上线(运维) ? 传统做法: 运维解压文件, 部署到相对应的服务器目录下面 存在问题: - 效率不高 - 不能实现覆盖有Bug的代码 解决方法: 代码上线系统 必要条件: 服务器的IP地址, 硬盘空间, CPU的使用率, 内存等
b.监控服务器:
传统做法: shell脚本来去做 ? 问题: - 不能实时 - 不能自动化 ? 现在做法: 后台用Python去做, 收集一下服务的元信息(IP地址, 硬盘大小, 内存) 前台配合kibana
c. 装机服务:
服务器装操作系统 (centos) 现在做法: 自动装机服务 也得知道一下, 服务的元信息 IP地址
d. 年底统计:
之前做法: 使用excel统计 存在问题: - 不能实时, 需要对变更进行记录 现在做法: 统计资产的系统 还得需要收集服务器的各种信息, 需要实时的汇报变更记录
-
CMDB: 资产管理系统
业界方案都差不多
本质上就是: 收集服务器的各种信息
-
开发CMDB的思路和大概做法:
-
使用Python代码执行linux的命令, 并且获取服务器上的对应信息
-
使用Http协议发送执行好的数据
-
-
CMDB的四套方案 (业内)
- agent模式
-
优点:速度快 缺点:每次都需要部署 适用的场景: 服务器数量特别多的情况
- ssh类模式
?缺点:使用paramiko登录服务器的话, 速度比较慢 优点: 不需要部署agent脚本 ? 适用场景: 服务器比较少 (100)
- saltstack
优点: 不用写Python代码 使用场景: - 服务器上已经部署了salt-stack或者想要使用salt-stack
-
开发的时候选择哪套方案?
-
三套方案全部实现
-
https://lupython.gitee.io/2018/05/05/CMDB介绍/
-