概要:
1、采集资产
2、API
一、资产采集
1、采集方式的配置
2、插件的定制
3、测试模式
4、错误日志(必须是行级的详细错误信息)
5、汇报数据--》遵循资产的唯一性
(1)只针对物理机(不包括虚拟机),SN号作为唯一标识
(2)建立规则:以不重复的主机名为唯一标识,且把主机名存储在文件中,从文件中获取主机名为标识(类似于pid文件)
<一>、采集方式
1、agent和salt的区别
(1)agent是采集自己的数据,salt是采集别人的数据,拿到结果后以某种方式发送给api
(2)对于agent没有性能瓶颈,而对于salt而言就有性能瓶颈--适合用多线程开启线程池。
2、认证信息(headers)get和post都需要带headers
3、插件的入口(继承Baseplugin(里面linux,windows的方法))
<二>错误日志
1、日志的运行级别
2、运行日志和错误日志分开
3、日志的格式 format格式化处理
4、多文件日志的写法
logging日志模块参考:http://www.cnblogs.com/wupeiqi/articles/5501365.html
<三>汇报数据
API的认证:
(1)加入发送时的时间戳,且与接收到数据是的当前时间戳进行比较,自定义有效时间。
(2)双向都用正向加密比较认证
(3)只允许一次访问,访问完写入列表或者redis等来判断是否已经存在。
注意:CBV实现解除CSRF验证,需要如下操作:
class AssetView(View):
#让CBV不遵循csrf验证
@method_decorator(csrf_exempt)
def dispatch(self, request, *args, **kwargs):
return super(AssetView, self).dispatch(request, *args, **kwargs)
二、API
<一>resful
(1)一个url代指一个资源
(2)状态转化,method动作不同(get,post,put,delete)
(3)表现层:html,jpg,png,json,xml,stream
<二>表结构
<三>get采集
(1)今日未更新数据
(2)资产状态(在线)