zoukankan      html  css  js  c++  java
  • CMDB资产采集

      一、浅析

      就目前而言,现在对资产采集一共有四种方式,分别是:

    • Agent
    • SSH类,如:paramiko
    • saltstack
    • puppet(ruby开发)

      对于前面三个都是由Python语言开发,最后一个为Ruby开发,因此我们重点介绍前面三个的具体内容。

      二、Agent

      1、特点及应用场景:

        适用于服务器多,由每一个服务器端将数据发送至API接口,API与数据库交互完成数据通信,性能相对比较高,速度快,但是每一个服务器都必须安装Agent。

      2、用法:

    import subprocess
    import requests
    #每一个服务器,都有这么一个py文件。
    v1=subprocess.getoutput('ipconfig') #执行Windows命令,返回信息赋值给v1
    value=v1[68:88] #字符串切片取值
    
    v2=subprocess.getoutput('dir') #同上
    value2=v2[0:10]
    
    url="http://127.0.0.1:8000/asset.html" #API接口URL
    response=requests.post(url,data={'k1':value,'k2':value2}) #向API通过post方式,data以字典方式传值,返回一个对象。
    print(response.text) #打印对象的text信息
    

      三、SSH类  (如:paramiko)

      1、特点及应用场景:

        适用于服务器少,性能要求不高,它主要通过中控机上安装paramiko实例出对象,由对象对每一台服务器通信获取数据,相对耗时,属于串联,上一个结束后,进行下一个。

      2、用法:

    import paramiko
    import requests
    
    # 创建SSH对象
    ssh = paramiko.SSHClient()
    #允许连接不在know_hosts文件中的主机
    ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    # 连接其中一台服务器
    ssh.connect(hostname='192.168.145.142',port=22,username='root',password='123321')
    # 发送执行命令
    stdin,stdout,stderr = ssh.exec_command('ifconfig')
    # 获取命令结果
    result=stdout.read()
    # 关闭连接
    ssh.close()
    value=result[68:88] #字符串切片
    print(value)
    
    # 向API以POST方式发送数据
    url='http://127.0.0.1:8000/asset.html'
    response=requests.post(url,data={'k1':value})
    print(response.text) #打印API返回信息
    

      三、SaltStack

      1、概述:SaltStack简单来说是一个基础架构管理工具,这个比较抽象,说白就是一个运维管理工具,底层是使用python实现,C/S架构,支持分布式部署,据说可以轻松管理上W台服务器,和Puppet这类工具很类似,其主要的功能:

    • 基于Key的远程连接并执行命令;
    • 强大的搜索器,多种方式过滤服务器;
    • 灵活的远程部署实现方式;
    • 基于YMAL格式对文件,用户,用户组及服务等资源灵活管理;

      2、特点及应用场景:

        当前应用场景已经使用SaltStack,服务器数量多,它主要是在中控机安装salt-master,服务器安装salt-minion,通过队列完成通信,获取数据。

      3、安装及配置

    yum -y install salt-master    /安装
    rpm -aq|grep salt-master    /检测
    salt-master配置文件: /etc/salt/master
    服务端安装
    yum -y install salt-minion   /安装
    rpm -aq|grep salt-minion   /检测
    salt-minion配置文件: /etc/salt/minion
    客户端安装
    salt-key -L    /列出所有key,key格式是minion-id,如果没有配置minion-id,则是主机名
    salt-key -A    /接受所有key
    salt-key -a  “ZK-YJY-APP-01”   /接受指定的key
    salt-key -R    /拒绝所有未接受的key
    salt-key -D     /删除所有key
    salt-key -d  “ZK-YJY-APP-01”   /删除指定的key
    添加客户端及授权

      4、安装注意事项:

    • 是否安装gcc?    (yum install gcc -y)
    • 是否关闭防火墙?   (systemctl stop firewalld.service)
    • 配置后是否重启服务?   (service salt-master restart  或  service salt-minion restart   --配置完成都要重启一下)

      5、用法:

      在master服务器上对salve进行远程操作:

    1、基于shell的命令
    
    salt '主机名或配置的ID' cmd.run  '被执行的命令'
    
    2、基于Salt连接API
    
    import salt.client
    local = salt.client.LocalClient()
    result = local.cmd('主机名或配置的ID', 'cmd.run', ['被执行的命令'])
    

      

      其他内容详情请戳友情链接 ☛:猛戳这里

        

  • 相关阅读:
    把影响集中到一个点
    How to avoid Over-fitting using Regularization?
    适定性问题
    Numerical Differentiation 数值微分
    What Every Computer Scientist Should Know About Floating-Point Arithmetic
    Generally a good method to avoid this is to randomly shuffle the data prior to each epoch of training.
    What is the difference between iterations and epochs in Convolution neural networks?
    Every norm is a convex function
    Moore-Penrose Matrix Inverse 摩尔-彭若斯广义逆 埃尔米特矩阵 Hermitian matrix
    perl 类里的函数调用其他类的函数
  • 原文地址:https://www.cnblogs.com/Michael--chen/p/7241828.html
Copyright © 2011-2022 走看看