首页 > 代码库 > 1111

1111

 

a. Agent方式

api
	- URL
	- 发送数据格式
	- 返回值
agent  
	- 采集数据,发送数据
好处:
	- 简单
	- 采集速度快,响应速度快
坏处:
	- 每台agent装的插件多,性能损耗严重
	- 更新需要更新每台agent服务器
技术分享
####server

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(姿势不对)


####agent
import subprocess
import requests

v1 = subprocess.getoutput("ifconfig")
value1 = (v1[51:55])

v2 = subprocess.getoutput("dir")
value2 = (v2[14:20])

url = "http://127.0.0.1:8000/asset.html"

response = requests.post(url,data=http://www.mamicode.com/{"k1":value1,"k2":value2})
print(response.text)
View Code

b. ssh方式 

#ssh方式
	- fabric(本质是Paramiko)
	- ansible(本质是Paramiko)
	- Paramiko


#Paramiko模块

原理: Paramiko中控机远程连接服务器,执行命令,获取结果,将结果发送Api
应用场景:服务器少,ssh可以忽略  

好处
   - 无需Agent
坏处
   - 连接客户机时每次需要ssh连接,速度慢


http://www.cnblogs.com/wupeiqi/articles/5095821.html
技术分享
##server

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(姿势不对)


##Paramiko中控机


import paramiko
import requests

# 创建SSH对象
ssh = paramiko.SSHClient()

# 允许连接不在know_hosts文件中的主机
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())

# 连接服务器
ssh.connect(hostname=10.37.129.3, port=22, username=root, password="123456")

# 执行命令
stdin, stdout, stderr = ssh.exec_command(ifconfig)

# 获取命令结果
result = stdout.read()[0:20]

# 关闭连接
ssh.close()

url = "http://127.0.0.1:8000/asset.html"

response = requests.post(url,data=http://www.mamicode.com/{"k1":result})
print(response.text)
View Code

 

  

  

1111