每天要处理亿级的日志文件,该怎么做?

2015-06-30 18:08:08 +08:00
 whnzy

现在要做到每天处理亿级的日志文件,公司根本没有现成的系统.日志是由nginx打下的请求日志,要在日志中筛选需要的信息,有些还是加密的请求,需要解密.
我当时用python 搭建起一套系统,一天可以处理完,但是随着数据的增加,我为了提高查询数据库的速度,将一些内容放到了内存中,但是随着数据的增加,内存已经爆掉.
mongo,多维数组什么的都已经尝试过了,已经无能为力了,我刚刚毕业,没有那么多的经验,手中只有两台服务器可用,而且内存一个4G,一个1G,cpu最多的一个也才是双核的.
请教该怎么搞?

10507 次点击
所在节点    Hadoop
73 条回复
kaneg
2015-06-30 19:33:13 +08:00
想要马儿跑得快,还要马儿不吃草。玩QQ游戏的电脑配置也比你的要好吧
Septembers
2015-06-30 19:34:54 +08:00
qsl0913
2015-06-30 19:39:30 +08:00
日志的查询需求具体是,查明细?做统计?
em70
2015-06-30 19:42:09 +08:00
@whnzy 只能用一种工具解决吗,awk可以帮你快速筛选记录,然后给Python后续处理啊,你用python去查找那不慢死,awk命令完全可以达到数据库的性能

另外可以创建一个内存盘,把当前处理的日志拷贝到内存盘里让awk处理,那更加酸爽
paulw54jrn
2015-06-30 20:17:24 +08:00
丢Redshift吧..
rssf
2015-06-30 20:33:55 +08:00
这已经不是技术能解决的了,给老大提,这算毛的服务器啊。如果老板1毛钱都不想花在硬件上,趁早换地
yghack
2015-06-30 20:36:05 +08:00
ELK
sunchen
2015-06-30 20:44:45 +08:00
aws的话试试redshift
sunchen
2015-06-30 20:45:33 +08:00
@paulw54jrn 赞同,redshift谁用谁知道
scys
2015-06-30 20:54:42 +08:00
服务器性能不足,请最少配置16G的内存给日志服务器。
realpg
2015-06-30 21:00:54 +08:00
@jason52 你刚说完这个,又有一大堆渣浪的回帖卧槽离职时候忘了把自己的内存拔下来了……
summic
2015-06-30 21:20:55 +08:00
分而治之
ms2008
2015-06-30 21:40:36 +08:00
elk妥妥的
msg7086
2015-06-30 21:55:05 +08:00
4G内存?不要搞笑了。我5年前家用的破电脑都有8G。敢不敢让你们领导买台旧电脑来处理?

@realpg 内存才几个钱……比ssd还便宜吧……
hitsmaxft
2015-06-30 22:12:28 +08:00
额。。我跑工具脚本的虚拟机都都是 6g 内存, 你这玩意用4g的。。
daoluan
2015-06-30 23:09:56 +08:00
这些日志用来做什么?
sophymax
2015-06-30 23:13:25 +08:00
明显要上集群啊
xiawinter
2015-06-30 23:17:24 +08:00
@nullcc 很多人用这个方案,但这个方案题主跑不起来,太慢了。 题主可以考虑 heka, 我们数据量比这还要高点,两台机器往 elasticsearch里扔, elasticsearch 需要 12G 内存, 未用 SSD, 不过能用 ssd 速度快很多。

logstash 是 jruby 来做正则解析的,不知道为什么他们会用这么个方案,百思不得其解的慢。 heka 做法非常好, 如果不能及时处理数据,会缓存到 /var/cache/hekad/ 下面,这样不会造成机器卡死。 数据传输和处理有点延迟很正常,硬盘做大点, 准备 100G 应当就差不多。 几天不做都死不了。

如果转运过程还需要去查询 mysql, 那么我认为设计方案可能可以优化一下,类似日志的数据分析不应该做即时分析的,可以先把数据格式化后,之后开始做计算。 否则可能让数据阻塞在原来的地方。

请求加密是指传过来的数据是加密的,然后解密这部分数据? 感觉很多东西都混在一起,耦合有点高。
chinabrowser
2015-07-01 01:26:00 +08:00
赶快GCE 这个同等配置可比AWS便宜
9
2015-07-01 01:39:32 +08:00
最近在做跟楼主一样的东西,ELK 是很适合的方案,不要把数据放数据库中去,那是自杀的做法。
其中 logstash 可以换成 fluentd,不多说了,直接看这个 kibana 的 demo 吧,http://demo.elastic.co/packetbeat/

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/202249

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX