V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
prenwang
V2EX  ›  数据库

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

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

    关系数据库没戏了, 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   ·   实用小工具   ·   1697 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 16:36 · PVG 00:36 · LAX 08:36 · JFK 11:36
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.