0基础学数据分析 CMDB架构方案

要想要更好的学习必须要先了解什么是CMDB,CMDB,Configuration Management Database的简称,从英文单词中直译”配置管理数据库“,但实际上更多的被称呼为”资产管理系统“。

### 方案一:agent方案

```python

web服务<=>数据库<=>API程序<=>agent(部署到服务器上python服务)

        1.python代码利用subprocess模块执行linux命令

        import subprocess

      res1 = subprocess.getoutput('ipconfig')

      res2 = subprocess.getoutput('...')

      ...

    2.利用requests模块post方法将命令结果发送回API程序

      3.API程序对数据进行二次分析过滤,之后发送存储到数据库

    4.web服务展示数据

```

### 方案二:ssh类方案

```python

web服务<=>数据库<=>API程序<=>中控机(paramiko)<=>服务器

    选择1:paramiko模块链接服务器

    选择2:ansible批量管理  # 底层链接也是基于paramiko

```

### 上述两套方案对比

```python

# 1.agent方案

        优点

          定时执行agent脚本,速度快

        缺点

          每次都需要部署

        应用场景

          服务器数量特别多

# 2.ssh类

        优点

          不需要部署agent服务

        缺点

          使用paramiko登陆服务器速度比较慢

        应用场景

          服务器较少

```

### 方案三:saltstack方案

```python

'''saltstack也是用python写的一个软件,master与所有minion彼此之间底层通过两个zeromq进行数据交互'''

web服务<=>数据库<=>API程序<=>中控机(salt-master)<=>服务器(salt-minion)

# 优点

    不需要写任何代码,直接在中控机和服务器上yum install salt-master/minion

# 使用场景

    服务器上已经部署了saltstack,那就多一事不如少一事

```

### 方案四:puppet方案

```python

'''较老,底层用ruby on rails编写,目前基本不用了'''

新浪第一代cmdb使用的就是puppt,后来由于ruby使用者较少不便于后续编写及维护所以之后基本不在使用了

架构跟salt-stack方案一致,大致每30分钟统计一次

```

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容