转载

经验分享 | 巡风风险扫描系统的一些演变

*本文原创作者:无花无酒锄作田,本文属FreeBuf原创奖励计划,未经许可禁止转载

同程SRC团队开源巡风资产风险控制系统也有一段时间了,我们临时用它作为一个简单的soc平台来使用,期间也做了一些定制化开发,此次分享,权当做个笔记吧。基于巡风我们主要做了一下几个方面的工作:

1、因为要开发自己的模块,为了不使巡风的代码显得过于混乱,所以采用flask的blueprint(蓝图)对巡风的视图层进行了模块拆分。
2、后端数据越来越多且重要性比较高,为了提高数据容灾且保证SLA,就做了mongodb副本集
3、时常要用到xunfeng的资产数据,为了方便做数据分析,就开发了几个简单的api(没有做认证)
4、临时用的人越来越多,为了提高并发,就采用了nginx做反向代理
5、用的人多了,就牵涉到权限的问题,就取巧性的暂时做了个权限限制

下面一一介绍吧!

一、对xunfeng使用blueprint

1、使用blueprint 主要会对views目录下的文件有比较大的影响,views目录截图如下:

经验分享 | 巡风风险扫描系统的一些演变
经验分享 | 巡风风险扫描系统的一些演变

原始目录结构和使用blueprint后的目录结构

2、我们随便进入views目录下的两个视图模块,文件截图如下:

经验分享 | 巡风风险扫描系统的一些演变

3、如何对xunfeng使用blueprint呢,以views/view模块为例

3.1、修改__init__.py文件,截图如下:

经验分享 | 巡风风险扫描系统的一些演变

3.2、修改view.py文件,截图如下:

经验分享 | 巡风风险扫描系统的一些演变

3.3、为了使views/view模块生效,我们需要修改根目录下的Run.py,截图如下:

经验分享 | 巡风风险扫描系统的一些演变

二、巡风使用mongodb副本集

1、mongodb副本集配置注意事项

1.1、参考 http://www.runoob.com/mongodb/mongodb-replication.html

1.2、mongodb配置文件,借鉴下面这个:

经验分享 | 巡风风险扫描系统的一些演变

注意bind_ip,我当时用的0.0.0.0,没有配置成功副本集,最好指定副本集节点的IP

2、连接副本集配置

2.1、修改Config.py文件:

经验分享 | 巡风风险扫描系统的一些演变

2.2、xunfeng连接mongodb副本集,修改Conn.py文件,参考截图:

经验分享 | 巡风风险扫描系统的一些演变

2.3、python操作mongodb副本集,采用读写分离的方式,读mongodb采用xunfeng的配置方式就可以,写mongodb参考下面的配置,参考截图:

经验分享 | 巡风风险扫描系统的一些演变

三、开发restful api

1、接口模块位置:

经验分享 | 巡风风险扫描系统的一些演变

2、接口view.py文件参考截图:

经验分享 | 巡风风险扫描系统的一些演变

四、提高xunfeng的并发处理能力

1、安装nginx,不懂的自行百度

2、pip install uwsgi

3、uwsgi的配置参考截图:

经验分享 | 巡风风险扫描系统的一些演变

4、启动,参考截图:

经验分享 | 巡风风险扫描系统的一些演变

五、简单的权限限制

1、大概效果截图:

经验分享 | 巡风风险扫描系统的一些演变

2、需要做控制的视图(view.py)代码参考截图:

经验分享 | 巡风风险扫描系统的一些演变

3、权限控制@is_admin代码参考截图:

经验分享 | 巡风风险扫描系统的一些演变

六:总结

本人开发能力有限,希望有机会能从各位大牛身上学些东西,最后贴下巡风的开源地址:

https://github.com/ysrc/xunfeng

*本文原创作者:无花无酒锄作田,本文属FreeBuf原创奖励计划,未经许可禁止转载

原文  http://www.freebuf.com/sectool/168977.html
正文到此结束
Loading...