mongodb日志服务器方案
描述
目前要做的是多台服务器上的程序日志(如订购日志,交易日志,接口是否成功等)汇总到1个mongodb服务器,每日大约1亿的量,然后有图表实时展现,和报表展现日志信息
注意:
没有把所有日志放入1张表里面,因为日志插入很频繁会导致锁表,二是量大了影响查询速度。没有考虑用分片,因为针对我们的业务查询,分片没得分表效率高。用上了mongodb的副本集来保证服务器稳定运行 和 主从库读写分离来提高效率。
方案
1:简化入库,使用log4j配置把log4j日志以统一的json格式直接存入到mogodb
2:建立4张表
a:总表(全部日志)【单独建个库来保存,这样防止写入全局锁影响查询】
b:小时临时表:
格式:2013122106 注:2013年12月21日6时log4j写入的日志汇总
小时表:(crontab或者quartz定时统计前一小时临时表的业务所需数据,如某小时交易总量,成功率,各种聚合值等)
c:建立固定集合来存放最近2小时的数据。大小固定,效率高,自动会替换老的数据【随时在插入数据,所以会影响查询,建议放到mongodb的内存数据库和固定集合,提升效率】
d:天表(小时表的汇总)
业务处理
1小时内图标实时展现(固定集合能满足)
当天图表实时展现(小时表+固定集合能满足)
表报统计(小时表或者天表,有需求+月表或者年表)
遇到问题
mongodb使用import导入数据速度不稳定,所以如果导入数据有时间要求的话,建议使用程序批导入,
mongodb对插入会出现锁表,locked集合,影响集合查询, 不要把log4j的日志直接写入总表,在统计小时业务聚合信息,因为总表数量大了,效率很慢。建议log4j按小时写入的临时集合,在临时集合中统计小时业务数据到小时表
mongodb日志服务器方案的更多相关文章
- graylog2+syslog-ng+mongodb构建集中管理日志服务器 --转载
原文地址:http://blog.chinaunix.net/uid-11065483-id-3654882.html 由于公司内需要监控QQ的上下线记录,原本使用了分光+Panabit+Splunk ...
- mongodb 简单部署方案及实例
mongodb 简单部署方案及实例 转载:http://my.oschina.net/zhuzhu0129/blog/53290 第一节 准备工作 一 安装mongodb 我这里选用rehl 5.6 ...
- MongoDB安全加固方案,防止数据泄露被勒索
早上起来,发现生产数据库被删了,留下一个数据库名叫“PLEASE_READ”,里面内容如下: "Info" : "Your DB is Backed up at our ...
- Graylog2+mongdb+rsyslog中央日志服务器对syslog的web管理--转载
原文地址:http://blog.sina.com.cn/s/blog_49be4d570100yvv1.html 1.下载mongodb,可以通过下面2中方法安装. (1)官网下载yum源后直接安装 ...
- DataBase MongoDB集群方案介绍
MongoDB集群方案介绍 一.什么是mongodb集群? 是指由多台mongodb服务器组成的服务器集群,称之为mongodb集群. 二.mongodb集群搭建的方式: 1.Replica Set ...
- Android 优质精准的用户行为统计和日志打捞方案
Android 自定义优质精准的用户行为和日志打捞方案 Tamic csdn博客 :http://blog.csdn.net/sk719887916/article/details/51398416 ...
- SQL SERVER数据库删除LOG文件和清空日志的方案
原文:SQL SERVER数据库删除LOG文件和清空日志的方案 数据库在使用过程中会使日志文件不断增加,使得数据库的性能下降,并且占用大量的磁盘空间.SQL Server数据库都有log文件,log文 ...
- Eventlog Analyzer日志管理系统、日志分析工具、日志服务器的功能及作用
Eventlog Analyzer日志管理系统.日志分析工具.日志服务器的功能及作用 Eventlog Analyzer是用来分析和审计系统及事件日志的管理软件,能够对全网范围内的主机.服务器.网络设 ...
- MongoDB集群方案介绍
MongoDB集群方案介绍 一.什么是mongodb集群? 是指由多台mongodb服务器组成的服务器集群,称之为mongodb集群. 二.mongodb集群搭建的方式: 1.Replica Set ...
随机推荐
- Bootstrap 分页功能
function bootstrappage() { var options = { currentPage: currentPage, totalPages: totalPages, size: ' ...
- Python中异常(Exception)的总结
Python中的异常处理 异常处理的语句结构 try: <statements> #运行try语句块,并试图捕获异常 except <name1>: <statement ...
- 对于shell脚本参数获取时的一点小技巧
问题如下: 根据脚本参数的个数$#进行一个循环,在依次输出每个参数$1 $2 $3...... 我有一个循环变量i $i 取到这时的i为1,我想使用这个1再去调用$1,也是就是打印出第一个参数 就是$ ...
- 优化函数式编程:向 PHP 移植 Clojure 函数
许多通用程序设计语言试图兼容大多数编程范式,PHP 就属于其中之一.不论你想要成熟的面向对象的程序设计,还是程序式或函数式编程,PHP 都可以做到.但我们不禁要问,PHP 擅长函数式编程吗?本文系国内 ...
- HDU4535+公式
错排公式. 用64位! /* */ #include<stdio.h> #include<string.h> #include<stdlib.h> #include ...
- 网络编程(一) 利用NSURLSession发送GET POST请求
Xcode 7.0后,http链接不能直接访问(https可以),需要在Info.plist增加下面一项才能正确访问. 使用NSURLSession进行网络请求的流程: 1.构造NSURL 2.构造N ...
- easyui源码翻译1.32--Layout(布局)
前言 使用$.fn.layout.defaults重写默认值对象.下载该插件翻译源码 布局容器有5个区域:北.南.东.西和中间.中间区域面板是必须的,边缘的面板都是可选的.每个边缘区域面板都可以通过拖 ...
- 用Unity3.0+MVC4搭建项目
新年快乐!又是新的一年到来了,我好久没有在园子里面做笔记啦,由于工作上的事,还好年前把该做的都完善了,于是就写了辞职信.由于家庭原因,不得不离职,在春节期间呢,我放松了几天,去这里去那里的,朋友们喜欢 ...
- bulkTransfer通讯必须注意的问题:bulk buffer size(16K)
Android USB host与HID使用bulkTransfer通讯接收和发送的数据长度不会超过16384,这个问题困扰了我很长一段时间,终于发现问题所在,不是出在我的程序设计,也不是硬件的发送/ ...
- 135. Candy
题目: There are N children standing in a line. Each child is assigned a rating value. You are giving c ...