每秒 20-50w 的日志存储查询(路由网关),有什么低成本的方案

2017-03-07 10:22:30 +08:00
 prenwang

关系数据库没戏了, elk 分布式貌似也成本不低。

顺序文本写入磁盘, 如何解决检索问题。

2400 次点击
所在节点    数据库
23 条回复
domty
2017-03-07 10:42:26 +08:00
简单的检索 grep 就能胜任吧。

你觉得关系数据库或者 elk 没戏是因为什么,数据量太大了吗?还是觉得成本太高?
lhbc
2017-03-07 10:47:59 +08:00
取个中间值, 35 万
一个小时 12.6 亿,一天 302.4 亿,一周 2116.8 亿,一个月 9072 亿,一年 10.9 兆
楼主你是哪个单位的?
lhbc
2017-03-07 10:52:03 +08:00
算你平均每条日志 100 字节
一秒 33.3786MB ,一个小时 117GB ,一天 2.75TB ,一个月 82.5TB ,一年 1PB
daviswei
2017-03-07 10:53:53 +08:00
看起来正是大数据的场景么
prenwang
2017-03-07 10:54:13 +08:00
@domty 用关系数据库怕是对 dba 技能要求太高了,
prenwang
2017-03-07 10:55:40 +08:00
@lhbc 不会存那么久,一般这种日志就是 3-6 个月的做查询,过期的压缩存档,或删掉
prenwang
2017-03-07 10:57:15 +08:00
驻地网运营, wifi 运营,日志审计
scys
2017-03-07 11:01:46 +08:00
做 elk 吧,后期维护这些,要不就是自己写分析脚本,跑起来不是一般慢。
liyvhg
2017-03-07 12:15:10 +08:00
@lhbc 怎么感觉像是某些小运营商的功夫网节点
sfree2005
2017-03-07 12:16:02 +08:00
对你的场景不是十分了解,于是我有这样的假设:
- 审计是每隔一段时间审计一次,不需要实时数据
- 不介意把日志文件传到国外服务器,且付费方便
- 如果以上假设都不成立,也有解决方案(在最后有提到)。

基于上面这些假设,我觉得还是可以用 elk 的,你可以选择 scaleway 的独立服务器 C2L 套餐,控制面板有一键安装 ELK
- 8 核独立 CPU
- 32GB 内存
- 0.044 欧每小时
- 包括 300GB 硬盘,每增加 50GB 是+0.002 欧每小时,每台机器最多可以增加 2.25TB ,如果有更多,那就+多台机器组成 elk

机器需要的时候就开,不需要的时候就删掉,反正按小时计费。 一台机器费用是 0.044+2250/50*0.002=0.134 欧 /小时,折合人民币 1 块钱。假设跑一次审计, 传日志文件,设置服务器和跑统计的时间按总共十小时计算,成本就十块钱。

当然里如果需要实时,机器一直开着,那就 720 人民币了

还有更省钱的,只要你们服务器到 scaleway 服务器网速够快,直接把你国内服务器的硬盘 mount 到国外的机器,省去另外加硬盘的费用,那可以去到¥ 0.33/小时,跑一次审计就 3 块多钱,需要实时一直开那就是¥~237.6/月
skylancer
2017-03-07 12:16:30 +08:00
@liyvhg 公共 WiFi 热点的服务提供商吧...
izoabr
2017-03-07 12:55:14 +08:00
用 MQ,把日志往 MQ 丢,MQ 做路由,然后下面挂一堆消费者去消费消息并存储.
MQ 可以集群,消费者可以横向扩展,发现处理不过来就横向追加.
mortimer
2017-03-07 13:03:46 +08:00
@prenwang 难道是传说中的 wz
aru
2017-03-07 13:21:43 +08:00
@sfree2005 可以看看 2 楼的计算结果,平均 267Mbps 的速度,传海外就是个笑话。 300GB 的硬盘还不够 3 个小时的使用。
sfree2005
2017-03-07 13:56:59 +08:00
@aru 我知道国内个人用网络传境外是慢,服务器对传也会吗?我不是很了解。关于硬盘,我也提到可以另外挂,甚至可以用专门的 storage vps 挂,成本也不会增加很多.
ysanne
2017-03-07 13:58:53 +08:00
按照 3 楼的估算,每秒 30MB 的数据,负责人的讲,普通的 sata 盘用 rocksdb 就可以实现,甚至都不用怎么优化。瓶颈会在于如果查询模式比较复杂的话,需要自己额外构建索引。
不过按照 lz 的秒速,怕不是遇到同事或者同行了。。。。。。
sfree2005
2017-03-07 14:06:18 +08:00
@aru @prenwang 回头想想,即使服务器对传速度可以,但我忽略了上传的带宽成本,估计够呛,那还是不要传出去了,那就在当前机房自己加个高性能机器了,自己配置 elk 可以对付的~
tywtyw2002
2017-03-07 14:41:49 +08:00
以前做过类似的项目。

扔到 zeroMQ ,一个程序读 zeroMQ 然后写入文本文件或者 2 进制存(节约空间), 1 小时为单位分割。

另外的进程每天处理处理当天的日志文件,按照检索规则导入日志到数据库。

之前的项目 10ge 的口做端口镜像, http 数据 1T 可以存 2 周多的结果。
8355
2017-03-07 14:48:55 +08:00
不管怎么想都感觉你这个日志好牛逼啊.
vus520
2017-03-07 15:26:26 +08:00
@sfree2005 scaleway 适合中小型海外业务。把国内的数据拖到海外,海外对传需要上 Gb 的宽带,这比在国内用廉价硬盘组集群更贵。

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

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

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

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

© 2021 V2EX