第一种(agent):
这种方式是通过向每一台服务器安装agent脚本,然后通过中控机的API,来收集所需要的数据,最后放到数据库中,在通过web的方式显示出来.
实现流程图:
1.录入资产(主机名,SN)
2.本地执行subprocess.getoutput('命令'),获取数据
其本质就是在各个服务器上执行subprocess.getoutput()命令,然后在每台机器上执行,得到执行后的数据,返回给主机的API,然后主机将数据存放入数据库中,用户通过WEB的方式查看资产数据.
优点:速度快
缺点:需要每一台服务器部署一个agent程序
适用范围:大型互联网公司,有着特别多的服务器
第二种(ssh)
这种方式是通过中控机通过ssh的方式类似于shell向每台服务器发送命令,然后得到数据返回给中控机,中控机将数据存放入数据库,以WEB的方式展现给用户
实现流程图:
主要通过Paramiko模块(py)登录服务器获取信息
优点:不需要在服务器安装任何软件
缺点:速度慢
使用范围:服务器较少的公司,因为数量少获取数据不需要花费大量时间
第三种(saltstack)
通过在服务器主控机和服务器安装saltstack,主控机向服务器发送命令来获得数据