CMDB介绍

戏子无情 提交于 2019-11-28 06:16:04

一、为什么要做CMDB

a.项目开发和上线场景:  
    流程:
        产品经理调研需求 =====>  定一个时间开发 ======> 测试() ====> 产品项目上线(运维) 
    传统做法:
        运维解压文件, 部署到相对应的服务器目录下面  
    存在问题:
        效率不高
        不能实现覆盖有Bug的代码   
    解决方法:
        代码上线系统
        必要条件:
            服务器的IP地址, 硬盘空间, CPU的使用率, 内存等
            
    
b.监控服务器:
    传统做法:        
        shell脚本来去做
    问题:
        不能实时
        不能自动化
    现在做法:
        后台用Python去做, 收集一下服务的元信息(IP地址, 硬盘大小, 内存) 
        前台配合kibana
    
c. 装机服务:
        服务器装操作系统 (centos)
        现在做法:
            自动装机服务
            也得知道一下, 服务的元信息 IP地址
            
            
d. 年底统计:
        之前做法:
            使用excel统计  
        存在问题:    
            不能实时, 需要对变更进行记录
        现在做法:          
            统计资产的系统  
            还得需要收集服务器的各种信息, 需要实时的汇报变更记录

 

二、CMDB:资产管理系统

1、本质:收集服务器的各种信息

2、开发CMDB的思路和大概做法:

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

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

3、CMDB的四套方案

①agent模式

优点:速度快
缺点:每次都需要部署
适用的场景:服务器数量特别多的情况

架构:

在待采集的服务器上部署agent脚本,利用agent采集服务器信息,

采集完成之后,通过requests模块中post方法,将数据post到API中,

API拿到数据进行二次分析,分析完成之后连接数据库将数据存储到数据库中,数据库中的信息就是我们想要的数据,

为了让用户方便的查看数据,用django的web管理服务将数据展示到前端,用户可以通过界面来管理服务器中所有的信息。

②ssh类模式

缺点:使用paramiko登录服务器的话, 速度比较慢
优点: 不需要部署agent脚本
适用场景:服务器比较少 (100台以下)

架构:

有一台服务器充当中控机,在中控机上需要安装一个paramoko模块,通过paramiko模块可以登录待集的服务器上执行命令,执行完命令之后,会把命令的执行结果返回到中控机上,中控机上就有采集的信息。

中控机通过requests模块中post方法,将数据post到API中,

API拿到数据进行二次分析,分析完成之后连接数据库将数据存储到数据库中,数据库中的信息就是我们想要的数据,

为了让用户方便的查看数据,用django的web管理服务将数据展示到前端,用户可以通过界面来管理服务器中所有的信息。

③saltstack模式

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

架构:

有一台服务器充当中控机,需要在中控机上安装salt-master,需要在要采集的服务器上安装salt-minion,中控机连接要采集的服务器,并发送linux相关命令,待采集的服务器将执行结果返回给中控机。

中控机通过requests模块中post方法,将数据post到API中,

API拿到数据进行二次分析,分析完成之后连接数据库将数据存储到数据库中,数据库中的信息就是我们想要的数据,

为了让用户方便的查看数据,用django的web管理服务将数据展示到前端,用户可以通过界面来管理服务器中所有的信息。

saltstack安装配置:

①安装和配置

master端
    1、安装salt-master
        yum install salt-master
    2. 修改配置文件:vim /etc/salt/master
        interface: 10.0.0.100    # 表示Master的IP 
    3. 启动
        service salt-master start
slave端
    1、安装salt-minion 
        yum install salt-minion 
    2. 修改配置文件:vim /etc/salt/minion 
        master: 10.0.0.100    # 表示Master的IP 
    3. 启动
        service salt-minion start

②授权

[root@zgs ~]# salt-key -L    # 查看已授权和未授权的slave
Accepted Keys:
Denied Keys:
Unaccepted Keys:
zgs
Rejected Keys:
[root@zgs ~]# salt-key -A    # 把未授权的授权
The following keys are going to be accepted:
Unaccepted Keys:
zgs
Proceed? [n/Y] y
Key for minion zgs accepted.
[root@zgs ~]# salt-key -L   
Accepted Keys:
zgs
Denied Keys:
Unaccepted Keys:
Rejected Keys:

③执行命令:在master服务器上对salve进行远程操作

[root@zgs ~]# salt "*" cmd.run 'ifconfig'    # 查看ip

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!