码迷,mamicode.com
首页 > 数据库 > 详细

CMDB资产采集的四种方式

时间:2018-12-20 18:55:07      阅读:347      评论:0      收藏:0      [点我收藏+]

标签:abi   mis   自动化   获取   错误   资产采集   概念   配置信息   远程   

资产采集的概念

资产采集的四种方式:Agent、SSH、saltstack、puppet

资产采集

Configuration Management Database 简称CMDB,CMDB存储与管理企业IT架构中设备的各种配置信息,它与所有服务支持和服务交付流程都紧密相联,支持这些流程的运转、发挥配置信息的价值,同时依赖于相关流程保证数据的准确性。CMDB可以实现高度的自动化,减少人为错误的发生、降低人员成本,CMDB是实现运维自动化的基础。

Agent方式

程序:放置在每台服务器
应用场景:针对服务器较多的公司
 
步骤一:
    #执行本地命令的库
    import subprocess
    sub = subprocess.getoutput("要执行的命令名")
    每台机器通过用户名密码链接数据库,获取要执行的命令
     
步骤二: 采集数据
    import subprocess
    # 采集到本机运行ipconfig命令的输出结果
    result = subprocess.getoutput("ipconfig")
    print(result)
     
步骤三: 筛选整理数据
    # 正则等方式
    result_dic = {
        "网络信息":result,
    }
     
步骤四:发送数据到api
    # 以post方式将数据发送到url
    import requests
    requests.post("url", result_dic)

SSH方式

``` import paramiko

通过paramiko库链接各台机器,获取命令

缺点是慢

API:Django接收数据并入库

程序:放在中控机

应用场景:针对服务器较少的公司

SSH方式有三种工具,paramiko、Fabric、Ansible,其中Fabric、Ansible内部原理也是通过paramiko来实现得。
paramiko安装:pip3 install paramiko

andible,fabic等工具对paramiko进行了封装,方便使用 速度更快一些!

import requests,paramiko

获取今天未采集的主机名

从url中获取信息

host_list = requests.get("url")

通过paramiko连接远程服务器执行命令

创建ssh对象

ssh = paramiko.SSHClient()

允许连接不在know_hosts文件中的主机

ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())

连接服务器

ssh.connect(hostname="hostname", port=22, username="root", password="password")

执行命令

stdin, stdout, stderr = ssh.exec_command("hostname")

获取结果

result = stdout.read()
print(result)

关闭连接

ssh.close()

筛选整理数据

result_dic = {
"网络信息":result,
}

发送获取的数据

requests.post("url", result_dic)
```

CMDB资产采集的四种方式

标签:abi   mis   自动化   获取   错误   资产采集   概念   配置信息   远程   

原文地址:https://www.cnblogs.com/roygood/p/10150696.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!