网络服务异常检测系统
基于Django Restframework和Spark的异常检测系统,数据库为MySQL、Redis,
消息队列为Celery,分析服务为Spark SQL和Spark Mllib;
每天0点1分自动运行定时job从全量数据中导入正常的cat数据,该数据用于kmeans做模型训练
Fork项目
把项目fork到用户目录。
安装运行环境
$ sudo apt-get install redis-server
$ sudo apt-get install python3 python3-pip
$ sudo pip3 install virtualenv
$ sudo apt-get install python3-dev libmysqlclient-dev
$ git clone git_url
$ virtualenv -p python3 env_py3_spark
# 激活环境后安装依赖库
$ pip install -r requirements.txt
$ pre-commit install
本地配置文件 settings_local
进入web目录,创建新的配置文件settings_local.py。然后根据自己的环境进行配置。 例如:
"""
本地开发的配置文件
"""
from web.settings import *
DATABASES = {
"default": {
"ENGINE": "django.db.backends.mysql",
"HOST": "127.0.0.1",
"USER": "root",
"NAME": "test_cpass",
"PASSWORD": "password",
"PORT": "",
},
}
Celery任务启动
$ celery -A web worker -l info 启动celery
$ celery flower -A web --address=0.0.0.0 --port=6666 启动celery flower
新增用户管理模块,JWT TOKEN登录验证
nt_user 用户管理模块
新增接入第三方登录Oauth2.0,授权微博、QQ、微信登录
social_core social_django 第三方登录
新增Senty监控服务告警 服务500错误邮件告警
raven senty
增加websocket channels模块
遵从asgi协议,灵活支持同步和异步
新增django-haystack和elasticsearch
支持自动从django orm映射index signal自动更新index;
缺陷是只支持ES 2.x及以下 比较鸡肋,建议还是用DSL或Elasticsearch
cache_page缓存接口返回的结果
缓存get请求返回的结果1个小时
@method_decorator(cache_page(60 * 60), name='get')
部署方式可采用异步的方式部署,提高并发
nginx+tornado+daphne+supervisor