关于分布式日志
Date: 2019/11/12 Categories: 工作 Tags: k8s log
Logging Pipeline
基本类似ELK, 分为logging shipper, server和vislization三部分
- logging libraries: 帮助记日志的库, 和log pipeline关系不大, 比如glog, log4j等
- log shipper: 运行在edge node, 将收集日志并发送到sink, 某些功能比较简单, 比如filebeat没有transformation功能, 某些相对复杂, 比如logstash
- queue比如kafka, 起到持久化和排队的作用, 某些时候不需要
- server, 主要有ELasticsearch, sql数据库(pgsql/mysql), 列数据库(clickhouse…), hadoop
- 可视化, 比如kibana
Alternatives
- ELK:
- Pro: 使用比较广泛, 可视化做的好,可以利用es处理非结构化日志
- Con
- 组件多,需要部署filebeat+logstash+elasticsearch+kibana
- 性能较差,资源占用多, 当日志量很大时可能会处理不了
- Apache Flume + HDFS
case
- Cloudflare
- clickhouse
选择
对大多数小业务, 一天的日志以GiB计算, 用ELK就可以, 对更大的业务, 可以考虑clickhosy集群或者hadoop方案