• CMDB资产采集


    Agent(方式)

    1:服务器每台都需要安装Agent 达到采集速度快,简单;造成性能损耗
    获取每台服务器的资产并有返回值:v=subprocess.getoutput('dir')或者ipconfig
    返回给api  api在进行入库   (api  1.url  2.指定发送数据格式  3.并有返回值给客户端)
    2:应用场景:服务较多的公司  
    客户端:
    
    import subprocess
    v1=subprocess.getoutput('ipconfig')
    # print(v1)
    value1=v1[20:30]  #采集到一套资产
    
    
    v2=subprocess.getoutput('dir')  #采集到另外一条命令
    # print(v2)
    value2=v2[0:5]
    
    #连接到数据库,写入到数据库  数据往url上面发送
    url="http://127.0.0.1:8000/asset.html"
    import requests
    
    response=requests.post(url,data={'k1':value1,'k2':value2})   #数据发送到指定url上 发送完数据有返回值,收到url给返回的信息
    print(response.text)
    
    服务端 API:
    from app01 import views
    urlpatterns = [
        url(r'^admin/', admin.site.urls),
        url(r'^asset.html$',views.asset),
    ]
    
    
    from django.shortcuts import render,HttpResponse
    
    # Create your views here.
    
    def asset(request):   #接收用户发来的消息
        if request.method == "POST":
            print(request.POST)
            #并写入数据库
            return HttpResponse('1002')
        else:
            return HttpResponse('1001')
    #
    

        

    Paramiko(ssh方式)

    通过远程执行一条命令 导入paramiko模块
    每个服务器都需要安装SSH远程
    流程:中控机去服务器采集信息,采集完的信息返回给中控机 然后中控机把信息又返回给api,api收到消息并返回给中控机
    采集的资产信息放在中控机(paramiko模块)v=subprocess.getoutget('ipconfig') 拿到的是中控机的采集信息
    中控机在把信息返回给api,api在进行入库
    优点:无Agent 缺点:网络慢
    应用场景:服务器较少的公司  
    ############## Paramiko ,中控机放一份 #############
    """
    - 远程连接服务器,执行命令,获取结果
    - 将结果发送API
    """
    import paramiko
    #创建SSH对象
    ssh=paramiko.SSHClient()
    #允许连接不在know_hosts文件中的主机
    ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    #连接服务器
    ssh.connect(hostname='192.168.24.129',port=22,username='root',password='123456')
    
    #执行命令
    stdin,stdout,stderr = ssh.exec_command('ls')   #表示是要去连接,连接上执行命令
    
    #获取命令结果
    result = stdout.read()
    
    #关闭连接
    ssh.close()
    
    #并拿到结果
    value=result[0:10]
    print(value)
    import requests
    
    url = "http://127.0.0.1:8000/asset.html"
    response=requests.post(url,data={'k1':value,'k2':'v2'})
    print(response.text)
    ssh远程连接
    from app01 import views
    urlpatterns = [
        url(r'^admin/', admin.site.urls),
        url(r'^asset.html$',views.asset),
    ]
    
    
    from django.shortcuts import render,HttpResponse
    
    # Create your views here.
    
    def asset(request):   #接收用户发来的消息
        if request.method == "POST":
            print(request.POST)
            #并写入数据库
            return HttpResponse('1002')
        else:
            return HttpResponse('1001')
    #
    API

    SaltStack

    1. 安装和配置

    """
    1. 安装salt-master
        yum install salt-master
    2. 修改配置文件:vim /etc/salt/master
        interface: 0.0.0.0    # 表示Master的IP 本地ip
    3. 启动
        service salt-master restart
    
    (切记 一定关防火墙 systemctl stop firewalld)
    """
    master
    """
    1. 安装salt-minion
        yum install salt-minion
    
    2. 修改配置文件 vim /etc/salt/minion
        master: 10.211.55.4           # master的地址
        或
        master:
            - 10.211.55.4
            - 10.211.55.5
        random_master: True
    
        id: c2.salt.com                    # 客户端在salt-master中显示的唯一ID
    3. 启动
        service salt-minion restart
    
    切记 一定关防火墙 systemctl stop firewalld)
    
    """
    minion

    2. 授权

    在master里面输入
    salt -key -L 查看已授权和未授权
    salt -key -A 手动授权
    salt-key -r  salve_id      # 拒绝指定id的salve
    salt-key -d  salve_id      # 删除指定id的salve
    master

    3. 执行命令

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

    salt 'c2.salt.com' cmd.run  'ifconfig'
    salt ‘*’ cmd.fun 'ls'
    基于shell命令
    import salt.client
    local = salt.client.LocalClient()
    result = local.cmd('c2.salt.com', 'cmd.run', ['ifconfig'])
    基于Salt的API
  • 相关阅读:
    iOS项目之自定义斜向文字标签
    iOS进阶之两个模型数组的去重方法
    iOS进阶之正则表达式
    iOS项目之使用开关控制日志输出的功能
    iOS进阶之UDP代理鉴权过程
    990元外贸企业建站方案
    ¥990起,性价比最高的建站服务。
    PHP调用WEBSERVICE接口常见问题答疑以及总结
    Python消息队列工具 Python-rq 中文教程
    电商网站的用户停留时间越长越好吗?我看未必。
  • 原文地址:https://www.cnblogs.com/niejinmei/p/7242224.html
Copyright © 2020-2023  润新知