CMDB开发(一)需求分析以及资产采集方式

  1. CMDB的作用是什么,为什么要做CMDB?

    答:CMDB是运维自动化的最最基础的东西,他是准确描述一个公司的it基础架构的一个一个模型,然后可以进行动态的可视化。当我们采购服务器,这个服务器属于哪个业务线,硬盘多少块,内存多大,CPU是啥等等这些信息,以及服务器坏了,或者加硬盘,加内存,那么多的信息如果用excel表格维护的话,服务器越来越多就很麻烦吗,而且资产统计可能出错,因为人总有犯错的时候(excel上错误的数据可能达到10%左右),这种不稳定因素太多了,而cmdb就可以把这些服务器的CPU,内存等等各种信息,变更记录,操作记录都记录下来,比如拔了一块硬盘,能够自动显示,或者某位运维人员进行了误操作,可以在操作记录中看到。

  2. CMDB资产采集的方式有哪些?

    答:主要有四种方式,
    ①使用agent,我们写一些脚本在服务器上,可以通过Python的subprocess.getoutput执行,设置定时任务,让它每隔一段时间执行一下来获取关键信息,比如每隔一天执行一次,然后我们可以用Django写一个API,把执行结果给API,API把服务器的变更信息等写入到数据库,之所以要API,是因为要防止服务器直接连我们的数据库,一旦某台服务器被黑了,可以连到我们的数据库就很不安全,不能让机房的服务器直接连到数据库
    在这里插入图片描述
    优点:速度较快,缺点是需要安装agent
    ②使用ssh(基于paramiko模块)
    中控机先通过API去数据库里面获取没有采集资产信息的服务器列表,然后通过paramiko模块采集硬件信息到中控机里边,再发给API通过API写到数据库。
    在这里插入图片描述
    优点:不用安装agent
    缺点:速度很慢(因为是基于ssh),服务器比较少才可以这样做。
    ③使用salatstack
    在这里插入图片描述
    这种方式和上一种类似,也是先获取没有采集资产信息的服务器,但是是通过saltstack远程执行命令,把要执行的命令放到一个队列里边,然后把执行结果再放到另外一个队列里边,再从队列中取出结果发送给API,然后再写入到数据库。
    优点:速度快,开发成本低
    缺点:依赖saltstack,如果公司在用saltstack就很方便,如果公司不给用这个就不行了。

原创文章 85 获赞 120 访问量 4万+

猜你喜欢

转载自blog.csdn.net/happygjcd/article/details/104743363