CMDB资产采集的四种方式

资产采集的概念

资产采集的四种方式: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)

```

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

时间: 2024-10-10 03:39:55

CMDB资产采集的四种方式的相关文章

程序员初学机器学习的四种方式

http://blog.jobbole.com/67621/ 本文由 伯乐在线 - XiaoxiaoLi 翻译.未经许可,禁止转载!英文出处:Jason Brownlee.欢迎加入翻译组. 学习机器学习有很多方法,大多数人选择从理论开始. 如果你是个程序员,那么你已经掌握了把问题拆分成相应组成部分及设计小项目原型的能力,这些能力能帮助你学习新的技术.类库和方法.这些对任何一个职业程序员来说都是重要的能力,现在它们也能用在初学机器学习上. 要想有效地学习机器学习你必须学习相关理论,但是你可以利用你

Android——数据存储(四种方式之一)SharedPrefereces

Android--数据存储(四种方式) 1.SharedPrefereces   轻量级.XML  存储文件名,数据保存在data/data/basepackage/shared_prefs/myopt.xml中   实例-收藏-记住密码自动登录 //一种轻量级的数据存储方式//通过KEY 存入数据--putxxxx(key,value) 取出数据--getxxxx(key  default)   2.读写SD卡  SD的根目录  适用于数据流读写 3.SQLite  轻量级.dp文件多用于手机

JAVA中集合输出的四种方式

在JAVA中Collection输出有四种方式,分别如下: 一) Iterator输出. 该方式适用于Collection的所有子类. public class Hello { public static void main(String[] args) throws Exception { Set<Person> javaProgramers = new HashSet<Person>(); javaProgramers.add(new Person("aaron&qu

struts2访问国际化消息的四种方式

Struts2的国际化是建立在java国际化的基础之上的,因此具有强大的国际互能力.Struts2运行时自动检测当前的 Location,然后使用RsourceBundle加载对应的Locale资源文件.因为Struts2对java的国际化进行了封装,因此国际化起来更简单,用户一般提供不同国家的消息资源即可.在Struts2的国际化包含三个部分:前台的国际化,Action中的国际化,验证配置文件的国际化. 在Struts2中加载全局资源文件 国际化的前提是如何让Struts2能够加载到国际化消息

Android中多线程的使用四种方式最全总结

当我们启动一个App的时候,Android系统会启动一个Linux Process,该Process包含一个Thread,称为UI Thread或Main Thread.通常一个应用的所有组件都运行在这一个Process中,当然,你可以通过修改四大组件在Manifest.xml中的代码块(<activity><service><provider><receiver>)中的android:process属性指定其运行在不同的process中.当一个组件在启动的

jQuery绑定事件的四种方式:bind、live、delegate、on

1.jQuery操作DOM元素的绑定事件的四种方式 jQuery中提供了四种事件监听方式,分别是bind.live.delegate.on,对应的解除监听的函数分别是unbind.die.undelegate.off. 2.必备的基础知识: DOM树 示例,这是在browser环境下的一棵模拟DOM树: 我们的页面可以理解为一棵DOM树,当我们在叶子结点上做什么事情的时候(如click一个a元素),如果我们没有人为的设置stopPropagation(Moder Browser), cancel

jQuery绑定事件的四种方式

jQuery绑定事件的四种方式 jQuery提供了多种绑定事件的方式,每种方式各有其特点,明白了它们之间的异同点,有助于我们在写代码的时候进行正确的选择,从而写出优雅而容易维护的代码.下面我们来看下jQuery中绑定事件的方式都有哪些. jQuery中提供了四种事件监听方式,分别是bind.live.delegate.on,对应的解除监听的函数分别是unbind.die.undelegate.off.在开始看他们之前 一:bind(type,[data],function(eventObject

实例化类的四种方式

实例化类有四种方式: 1)使用new操作符 2)调用Class对象的newInstance()方法 3)调用clone()方法,对现有实例的拷贝 4)通过ObjectInputStream的readObject()方法反序列化类 1.new操作符 A a1 = new A(); System.out.println("a1: " + a1); 2.Class.forName()的newInstance方法和Constructor对象的newInstance()方法 Class<A

div与css结合的四种方式

第一种方式:               <div style=" background-color:#00ff00;font-size: 20px"> 第一种方式</div >               缺点:这种方式暴露的缺点是 代码严重重复. 第二种方式: 格式:标签名{                     属性一:属性值:                     属性二:属性值:                     ...