diff --git a/server/.gitignore b/server/.gitignore index e334829..832729a 100644 --- a/server/.gitignore +++ b/server/.gitignore @@ -2,3 +2,5 @@ *.csr *.pem *.key +data/ +logs/ diff --git a/server/server.py b/server/server.py index 941fc44..bbf7fd3 100755 --- a/server/server.py +++ b/server/server.py @@ -229,11 +229,14 @@ class Echo(Protocol, TimeoutMixin): if redis_server_stream.xlen('stream:{}:{}'.format(data_header['type'], self.session_uuid)) < self.stream_max_size: redis_server_stream.xadd('stream:{}:{}'.format(data_header['type'], self.session_uuid), {'message': data[header_size:], 'uuid': data_header['uuid_header'], 'timestamp': data_header['timestamp'], 'version': data_header['version']}) + + # daily stats redis_server_metadata.zincrby('stat_uuid_ip:{}:{}'.format(date, data_header['uuid_header']), 1, ip) redis_server_metadata.zincrby('stat_ip_uuid:{}:{}'.format(date, ip), 1, data_header['uuid_header']) - redis_server_metadata.zincrby('daily_uuid:{}'.format(date), 1, data_header['uuid_header']) redis_server_metadata.zincrby('daily_ip:{}'.format(date), 1, ip) + redis_server_metadata.zincrby('daily_type:{}'.format(date), 1, data_header['type']) + redis_server_metadata.zincrby('stat_type_uuid:{}:{}'.format(date, data_header['type']), 1, data_header['uuid_header']) # if not redis_server_metadata.hexists('metadata_uuid:{}'.format(data_header['uuid_header']), 'first_seen'): diff --git a/server/web/Flask_server.py b/server/web/Flask_server.py new file mode 100755 index 0000000..f000f4d --- /dev/null +++ b/server/web/Flask_server.py @@ -0,0 +1,46 @@ +#!/usr/bin/env python3 +# -*-coding:UTF-8 -* + +import os +import sys +import time +import redis +import flask +import datetime + +from flask import Flask, render_template, jsonify, request, Blueprint, redirect, url_for + +baseUrl = '' +if baseUrl != '': + baseUrl = '/'+baseUrl + +host_redis_metadata = "localhost" +port_redis_metadata= 6380 + +redis_server_metadata = redis.StrictRedis( + host=host_redis_metadata, + port=port_redis_metadata, + db=0, + decode_responses=True) + +app = Flask(__name__, static_url_path=baseUrl+'/static/') +app.config['MAX_CONTENT_LENGTH'] = 900 * 1024 * 1024 + +# ========== ROUTES ============ +@app.route('/') +def index(): + return render_template("index.html") + +@app.route('/_json_daily_uuid_stats') +def _json_daily_uuid_stats(): + date = datetime.datetime.now().strftime("%Y%m%d") + daily_uuid = redis_server_metadata.zrange('daily_uuid:{}'.format(date), 0, -1, withscores=True) + + data_daily_uuid = [] + for result in daily_uuid: + data_daily_uuid.append({"key": result[0], "value": int(result[1])}) + + return jsonify(data_daily_uuid) + +if __name__ == "__main__": + app.run(host='0.0.0.0', port=7000, threaded=True) diff --git a/server/web/static/img/d4-logo.png b/server/web/static/img/d4-logo.png new file mode 100644 index 0000000..63fe5a0 Binary files /dev/null and b/server/web/static/img/d4-logo.png differ diff --git a/server/web/templates/index.html b/server/web/templates/index.html new file mode 100644 index 0000000..951f5f1 --- /dev/null +++ b/server/web/templates/index.html @@ -0,0 +1,237 @@ + + + +
+ + + + + + + + + + + + + + +