CMDB:Configure Manage DataBase 中文:配置管理数据库。
主要的作用:收集服务器的基础信息(包括:服务器的主机名,ip,操作系统版本,磁盘,cpu等信息),将来提供给子系统(代码发布,工单系统等)
CMDB的架构图方案
agent方案
将待采集的服务器看成一个agent,然后在服务器上使用python的subprocess模块执行linux相关的命令,然后分析得到的结果,将分析得到的结果通过request模块发送给API,API获取到数据之后,进行二次比对数据,最后将比对的结果存入到数据库中,最后djang起一个webserver从数据库中将数据获取出来,供用户查看。
ssh类方案
在中控机服务器上安装一个模块叫paramiko模块,通过这个模块登陆到待采集的服务器上,然后执行相关的linux命令,最后返回执行的结果,将分析得到的结果通过requests模块发送给API,API获取到数据之后,进行二次比对数据,最后将比对的结果存入到数据库中,最后django起一个webserver从数据库中将数据获取出来,供用户查看。
上述方案比较:
第一套方案的优点是,不需要额外的增加中控机。缺点:每新增一台服务器,就需要额外部署agent脚本。使用场景是:服务器多的情况(1000台以上)
第二套方案的优点是,不需要额外的部署脚本。缺点:速度比较慢。使用场景是:服务器少(1000台往下)