一.Agent实现方式
Agent方式,可以将服务器上面的Agent程序作定时任务,定时将资产信息提交到指定的API录入数据库
其本质上就是在各个服务器上执行subprocess.getoutput()命令,然后将每台机器上执行的结果返回给主机API,然后主机API收到这些数据之后,放入到数据库中,最终通过web界面展现给用户
有点: 速度快
缺点: 需要为每台服务器部署一个Agent程序
二. ssh实现方式 (基于Paramiko模块)
中控机通过Paramiko(py模块)登录到各个服务器上,然后执行命令的方式去获取各个服务器上的信息
优点: 不需要为每台服务器部署一个Agent程序t
缺点: 速度慢
如果在服务器较少的情况下,可应用此方法
saltstack方式
此方案本质上和第二种方案大致是差不多的流程,中控机发送命令给服务器执行.服务器将结果放入另一个队列中,中控机获取将服务信息发送到API进而录入数据库.
优点: 速递块,开发成本低
缺点: 依赖于第三方工具
salstack的安装和配置
1. 安装和配置
2.授权
3.执行命令
在master服务器上对salve进行远程操作
基于API的方式
参考安装:
Puppet (ruby语言开发) (了解)
每隔30分钟,通过RPC消息队列将执行的结果返回给用户