Logstash+FileBeat+MongoDB+Flask打造的日志系统(二) 3ff8
2017-09-29 10:48
603 查看
后端采用Python的Flask框架。
pip install Flask
pip install Flask-PyMongo
功能比较少,就是查询MongoDB,按时间降序,开始的时候出现MongoDB排序超出32M限制的错误,后来在logtime 加上索引解决。
pip install Flask
pip install Flask-PyMongo
功能比较少,就是查询MongoDB,按时间降序,开始的时候出现MongoDB排序超出32M限制的错误,后来在logtime 加上索引解决。
from flask import Flask, jsonify, Response, request, session, redirect, url_for from flask import render_template from flask_pymongo import PyMongo, DESCENDING from bson.json_util import dumps from datetime import datetime import hashlib app = Flask(__name__) app.config['MONGO_HOST'] = '192.168.1.15' app.config['MONGO_PORT'] = 27017 app.config['MONGO_DBNAME'] = 'test' app.config['SECRET_KEY']='huanghongqiaoydgy1233456rr' mongo = PyMongo(app) @app.route("/") def index(): return render_template("index.html") @app.route("/checkLogin", methods=["POST", "GET"]) def checkLogin(): if request.method == 'POST': if 'username' in session: return Response(dumps({'auth' : True}), mimetype="application/json", status=200) else: pwd = hashlib.md5(request.form['password'].encode('utf8')).hexdigest() rs = mongo.db.users.find_one({'username': request.form['username'], 'password': pwd}) if rs is not None: session['username'] = request.form['username'] return Response(dumps({'auth' : False if rs is None else True}), mimetype="application/json", status=200) @app.route("/show_devlog", methods=["POST"]) def show_devlog(): cond = {} time_cond = {} if request.method == 'POST': if 'username' not in session: return Response("needLogin") if request.form['msg'].strip() != '': cond['msg'] = {'$regex': request.form['msg'].strip()} if request.form['project'] != '': cond['type'] = request.form['project'].strip() if request.form['loglevel'] != '': cond['loglevel'] = request.form['loglevel'].strip() if request.form['beginTime'] != '': time_cond['$gte'] = datetime.strptime(request.form['beginTime'], '%Y-%m-%dT%H:%M:%S.%fZ') if request.form['endTime'] != '': time_cond['$lte'] = datetime.strptime(request.form['endTime'], '%Y-%m-%dT%H:%M:%S.%fZ') if time_cond != {}: cond["logtime"] = time_cond currentPage = int(request.form['currentPage']) pageSize = int(request.form['pageSize']) logs = mongo.db.log.find(cond).sort('logtime', DESCENDING).limit(pageSize).skip((currentPage - 1) * pageSize) rs = {"logs": logs, "cnt": logs.count()} format = dumps(rs) return Response(response = format, mimetype="application/json", status=200) if __name__ == '__main__': app.run(host="0.0.0.0")
相关文章推荐
- Logstash+FileBeat+MongoDB+Flask打造的日志系统(三)
- Logstash+FileBeat+MongoDB+Flask打造的日志系统(一) 3ff0
- Linux操作系统安装ELK stack日志管理系统--(1)Logstash和Filebeat的安装与使用
- Linux搭建ELK日志收集系统:FIlebeat+Redis+Logstash+Elasticse
- 170228、Linux操作系统安装ELK stack日志管理系统--(1)Logstash和Filebeat的安装与使用
- Logstash/Filebeat->Logstash->Kafka->Spring-kafka->MongoDb->Spark日志收集和处理
- ELK+filebeat日志分析系统部署文档
- logstash与filebeat收集日志
- ELK日志检索系统--FileBeat配置说明
- ELK日志系统:Filebeat使用及Kibana如何设置登录认证
- ELK+filebeat日志分析系统部署文档
- logstash与filebeat收集日志
- logstash配合filebeat监控tomcat日志
- Filebeat+ELK搭建日志实时分析系统
- ELK+fileBeat 日志系统搭建
- 配置kibana和logstash、filebeat 日志统一收集
- logstash与filebeat收集日志
- 从零编写日志分析系统之filebeat安装配置
- Filebeat+Logstash+Elasticsearch抓取日志
- logstash与filebeat收集日志