Akagi201
1/25/2016 - 3:48 AM

日志系统架构

日志系统架构

#当前架构 heka(日志收集器) -> ElasticSearch(分布式搜索引擎,相当于数据库) -> Kibana(界面展现)

##Heka

  • 日志收集服务
  • Mozilla出品
  • Golang编写
  • 轻量却功能强大
  • 灵活易用
  • Go/Lua扩展

Heka用户:

  • Mozilla(FireFox)
  • Disqus(最流行的评论服务)

##ElasticSearch

  • 分布式集群
  • 非常便捷的扩容,新加节点自动重新分片
  • 强大的全文索引,搜索性能非常好,支持非常复杂的查询
  • 不够可靠,不够稳定,但集群情况下开启复制/备份可一定程度弥补这个问题
  • 存储成本高,常用数据会加载到内存中,所以是内存大户,而且Java的内存管理不稳定

##Kibana

  • 灵活定制的前端界面
  • 比较漂亮的图形展示

#关于日志系统的存储选择

  • 需要实时搜索,所以要支持全文索引
  • 又有分析/统计需求
  • 每日数据量大,历史积累数据量大

因为这个缘故:

  • 纯MySQL不适合,like性能太差,而且数据量巨大时的统计性能也很差
  • 但MySQL有一些全文索引的插件,问题是木有合适的集群化方案,sharding方案太蛋疼

refs