每秒 20-50w 的日志存储查询(路由网关),有什么低成本的方案 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
prenwang
V2EX    数据库

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

  •  
  •   prenwang 2017-03-07 10:22:30 +08:00 2643 次点击
    这是一个创建于 3158 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

    23 条回复    2017-03-15 23:04:03 +08:00
    domty
        1
    domty  
       2017-03-07 10:42:26 +08:00
    简单的检索 grep 就能胜任吧。

    你觉得关系数据库或者 elk 没戏是因为什么,数据量太大了吗?还是觉得成本太高?
    lhbc
        2
    lhbc  
       2017-03-07 10:47:59 +08:00 via iPhone
    取个中间值, 35 万
    一个小时 12.6 亿,一天 302.4 亿,一周 2116.8 亿,一个月 9072 亿,一年 10.9 兆
    楼主你是哪个单位的?
    lhbc
        3
    lhbc  
       2017-03-07 10:52:03 +08:00 via iPhone
    算你平均每条日志 100 字节
    一秒 33.3786MB ,一个小时 117GB ,一天 2.75TB ,一个月 82.5TB ,一年 1PB
    daviswei
        4
    daviswei  
       2017-03-07 10:53:53 +08:00
    看起来正是大数据的场景么
    prenwang
        5
    prenwang  
    OP
       2017-03-07 10:54:13 +08:00
    @domty 用关系数据库怕是对 dba 技能要求太高了,
    prenwang
        6
    prenwang  
    OP
       2017-03-07 10:55:40 +08:00
    @lhbc 不会存那么久,一般这种日志就是 3-6 个月的做查询,过期的压缩存档,或删掉
    prenwang
        7
    prenwang  
    OP
       2017-03-07 10:57:15 +08:00
    驻地网运营, wifi 运营,日志审计
    scys
        8
    scys  
       2017-03-07 11:01:46 +08:00
    做 elk 吧,后期维护这些,要不就是自己写分析脚本,跑起来不是一般慢。
    liyvhg
        9
    liyvhg  
       2017-03-07 12:15:10 +08:00 via Android
    @lhbc 怎么感觉像是某些小运营商的功夫网节点
    sfree2005
        10
    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
        11
    skylancer  
       2017-03-07 12:16:30 +08:00 via Android   1
    @liyvhg 公共 WiFi 热点的服务提供商吧...
    izoabr
        12
    izoabr  
       2017-03-07 12:55:14 +08:00
    用 MQ,把日志往 MQ 丢,MQ 做路由,然后下面挂一堆消费者去消费消息并存储.
    MQ 可以集群,消费者可以横向扩展,发现处理不过来就横向追加.
    mortimer
        13
    mortimer  
       2017-03-07 13:03:46 +08:00
    @prenwang 难道是传说中的 wz
    aru
        14
    aru  
       2017-03-07 13:21:43 +08:00
    @sfree2005 可以看看 2 楼的计算结果,平均 267Mbps 的速度,传海外就是个笑话。 300GB 的硬盘还不够 3 个小时的使用。
    sfree2005
        15
    sfree2005  
       2017-03-07 13:56:59 +08:00
    @aru 我知道国内个人用网络传境外是慢,服务器对传也会吗?我不是很了解。关于硬盘,我也提到可以另外挂,甚至可以用专门的 storage vps 挂,成本也不会增加很多.
    ysanne
        16
    ysanne  
       2017-03-07 13:58:53 +08:00
    按照 3 楼的估算,每秒 30MB 的数据,负责人的讲,普通的 sata 盘用 rocksdb 就可以实现,甚至都不用怎么优化。瓶颈会在于如果查询模式比较复杂的话,需要自己额外构建索引。
    不过按照 lz 的秒速,怕不是遇到同事或者同行了。。。。。。
    sfree2005
        17
    sfree2005  
       2017-03-07 14:06:18 +08:00
    @aru @prenwang 回头想想,即使服务器对传速度可以,但我忽略了上传的带宽成本,估计够呛,那还是不要传出去了,那就在当前机房自己加个高性能机器了,自己配置 elk 可以对付的~
    tywtyw2002
        18
    tywtyw2002  
       2017-03-07 14:41:49 +08:00
    以前做过类似的项目。

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

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

    之前的项目 10ge 的口做端口镜像, http 数据 1T 可以存 2 周多的结果。
    8355
        19
    8355  
       2017-03-07 14:48:55 +08:00
    不管怎么想都感觉你这个日志好牛逼啊.
    vus520
        20
    vus520  
       2017-03-07 15:26:26 +08:00
    @sfree2005 scaleway 适合中小型海外业务。把国内的数据拖到海外,海外对传需要上 Gb 的宽带,这比在国内用廉价硬盘组集群更贵。
    sfree2005
        21
    sfree2005  
       2017-03-07 16:39:32 +08:00 via iPhone
    @vus520 之前我建议的那个 scaleway 套餐是 800Mb/s ,不限流量。如果国内网速到那边即使只有一半带宽,也能满足。我之前忽略了国内部分的流量成本和不知道国内外服务器对传数据是不是也抽风式的慢,没有相关的经验,考虑不周。 scaleway 我也只是自己买几欧一个月的 vps 玩玩,没有试过生产环境用,但感觉还行。
    prenwang
        22
    prenwang  
    OP
       2017-03-07 19:01:29 +08:00
    @tywtyw2002 感谢提醒, zmq 很靠谱,非常轻量级的分布式方案。

    日志服务器都是本地机房的,尽量不会考虑云端。

    日志内容存到可简单检索的文件,简化索引按时间分割存关系数据库或 elasticsearch 或者 mongodb Capped Collections

    前端接口异步查询。
    mingyun
        23
    mingyun  
       2017-03-15 23:04:03 +08:00
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2625 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 15:21 PVG 23:21 LAX 08:21 JFK 11:21
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86