自动采集数据,三个方式:
agent 方式:
agent:就是一个客户端,在客户端上放置采集程序,agent采集完数据后就直接返回给api程序(目前就是django的一个程序)
agent程序:
#!/usr/bin/env python3
importsubprocess
v2=subprocess.getoutput('ifconfig')print(v2)
url='http://192.168.11.27:8003/asset.html'
importrequests
requests.post(url,data={'k1':v2})
api:
from django.shortcuts importrender,HttpResponse#Create your views here.
defasset(request):if request.method=='POST':print(request.POST)return HttpResponse('copy that')else:return HttpResponse('null')
ssh 方式:
ssh使用的是paramiko(python的模块)就处于中控区
ssh 的方式是没有agent的,通过 中控区 ssh到服务器上远程执行完命令后将结果返回,然后传给API ;再写入数据库
saltstack:
saltstack 也是一个中控区,master 执行命令后如:
客户端执行完后返回结果,如上
saltstack 原理是RPC,它里面维护着一个消息队列,默认是空,当master 有命令执行的时候如上图,队列里就是有命令,然后客户端执行::
客户端执行完后再创建一个队列- 这个队列里存储的结果返回给 master
saltstack 安装附录
安装完后的master节点查看 minion
基础使用:
安装完后修改配置:
服务端:
/etc/salt/master
interface : 192.168.44.145
/etc/salt/minion
客户端 :master : 192.168.44.148 . #master的地址
salt-key -L 查看已经授权的minion
service salt-minion restart 启动
https://docs.saltstack.com/en/latest/topics/installation/index.html#quick-install