V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
yueyoum
V2EX  ›  程序员

Implement of Logging Server

  •  
  •   yueyoum ·
    yueyoum · 2014-04-24 18:25:33 +08:00 · 2977 次点击
    这是一个创建于 3877 天前的主题,其中的信息可能已经有所发展或是发生改变。
    在一个分布式系统中,有很多节点,这些节点跑的代码都是一样的。
    为了能集中收集日志,所以需要实现一个 集中式的logging server

    是的,我知道 https://github.com/getsentry/sentry
    但感觉自己需求简单,也没太多时间研究sentry,
    并且 现在的系统是基于python的, 写日志通过logging模块
    所以只要实现一个自己 Handler, 把收到的 record emit 到 logging server 即可。
    代码改动很少。
    随想自己实现一个能满足需求的即可


    现在想到的思路:
    logger server 无关紧要,挂了也就挂了。
    终端向这个logging server 发送数据的时候 不能是阻塞式的,以免影响终端性能。

    所以,打算用 zeromq, pub sub 模式, 终端 pub , logging server sub。

    把收到的日志写入mysql, 然后再做一个web界面,提供日志展示和分析。

    但做web界面有点消耗时间,LZ很懒啊……

    大家对此有和看法和建议?
    14 条回复    1970-01-01 08:00:00 +08:00
    yangff
        1
    yangff  
       2014-04-24 18:47:04 +08:00 via Android
    不用数据库,弄个file list下载回本地看就行了。可以按照时间分个片。。
    ihacku
        2
    ihacku  
       2014-04-24 18:59:41 +08:00
    ihacku
        3
    ihacku  
       2014-04-24 19:08:14 +08:00   ❤️ 1
    huoxiaochai
        4
    huoxiaochai  
       2014-04-24 23:10:41 +08:00
    如果你用数据库,这个日志系统注定是小玩具,还不如用用elasticsearch,日志记录和收集可以考虑syslog-ng,flume,kafka
    yueyoum
        5
    yueyoum  
    OP
       2014-04-25 09:58:31 +08:00
    @ihacku

    恩,打算研究下 fluentd
    yueyoum
        6
    yueyoum  
    OP
       2014-04-25 09:58:39 +08:00
    @ihacku thanks
    yueyoum
        7
    yueyoum  
    OP
       2014-04-25 10:00:59 +08:00
    @huoxiaochai

    没明白你的意思, 关于日志系统我了解的不多,但上面提到的sentry 就用了关系型数据库啊。
    也是小玩具?
    yueyoum
        8
    yueyoum  
    OP
       2014-04-25 10:03:23 +08:00
    @huoxiaochai

    粗略的看了下, fluentd 的 storage 可以用 mongodb 和 riak

    还是没明白 用了数据库就是小玩具 的含义……
    huoxiaochai
        9
    huoxiaochai  
       2014-04-25 11:10:29 +08:00
    @yueyoum 看你的日志量吧,我们一天200来个G,你用数据库体会一下? riak也还凑合毕竟可以集群扩容,Mongodb的话,做做最终展示的存储也可以,如果是存储原生日志,也只能祝你好运了
    yueyoum
        10
    yueyoum  
    OP
       2014-04-25 12:05:19 +08:00
    @huoxiaochai
    我相信 如果我的系统 一天可以产生2G 的日志,(不是请求日志,是关键信息日志)。 那么我就有足够的钱请人来帮我做这个事情了。

    我想 应该没有人直接把 终端发来的 string 格式的日志,不做拆分,直接插入数据库吧。

    还有能否请教一下, 你们是如何处理一天200G日志的?
    yueyoum
        11
    yueyoum  
    OP
       2014-04-25 12:08:39 +08:00
    @huoxiaochai

    请原谅我 咬文嚼字, sentry, fluentd 这些,因为他们用了数据库。
    所以 看日志量吧, 大了这些东西都是玩具?
    huoxiaochai
        12
    huoxiaochai  
       2014-04-25 13:17:47 +08:00
    @yueyoum 这个在我眼里就是玩具呀,不能用,这个得实际玩起来你就有体会了
    huoxiaochai
        13
    huoxiaochai  
       2014-04-25 13:22:08 +08:00
    @yueyoum 就是elasticsearch集群管理这个日志撒,收集是通过syslog-ng和kafka
    yueyoum
        14
    yueyoum  
    OP
       2014-04-25 13:53:03 +08:00
    @huoxiaochai

    好的,感谢建议。 我去研究下, 不过感觉很高大上的样子。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5540 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 03:40 · PVG 11:40 · LAX 19:40 · JFK 22:40
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.