关于分布式日志

Date: 2019/11/12 Categories: 工作 Tags: k8s log



Logging Pipeline

基本类似ELK, 分为logging shipper, server和vislization三部分

  1. logging libraries: 帮助记日志的库, 和log pipeline关系不大, 比如glog, log4j等
  2. log shipper: 运行在edge node, 将收集日志并发送到sink, 某些功能比较简单, 比如filebeat没有transformation功能, 某些相对复杂, 比如logstash
  3. queue比如kafka, 起到持久化和排队的作用, 某些时候不需要
  4. server, 主要有ELasticsearch, sql数据库(pgsql/mysql), 列数据库(clickhouse…), hadoop
  5. 可视化, 比如kibana

Alternatives

  • ELK:
    • Pro: 使用比较广泛, 可视化做的好,可以利用es处理非结构化日志
    • Con
      • 组件多,需要部署filebeat+logstash+elasticsearch+kibana
      • 性能较差,资源占用多, 当日志量很大时可能会处理不了
  • Apache Flume + HDFS

case

选择

对大多数小业务, 一天的日志以GiB计算, 用ELK就可以, 对更大的业务, 可以考虑clickhosy集群或者hadoop方案