8.2 日志系统选型:Loki vs ELK,谁更适合云原生时代?
1. 引言:日志系统的演进
在容器化之前,日志管理相对简单:应用把日志写到文件,运维用tail -f查看,或者用rsyslog集中收集。
但在 Kubernetes 环境中:
- Pod 随时可能重启,日志文件会丢失
- 多个副本的日志混在一起,难以区分
- 日志量巨大(微服务 × 副本数 × 请求量)
传统的 ELK(Elasticsearch + Logstash + Kibana)虽然强大,但在云原生场景下显得“过重”。Loki作为后起之秀,专为云原生设计,正在挑战 ELK 的霸主地位。
2. ELK 栈深度解析
2.1 架构组成
- Elasticsearch:搜索引擎,存储和索引日志
- Logstash/Beats:数据采集和转换
- Kibana:可视化界面
2.2 优点
- 功能强大:全文检索、复杂查询、机器学习
- 生态成熟:插件丰富、社区活跃
- 企业级:支持 RBAC、审计、加密
2.3 缺点
- 资源消耗大:Elasticsearch 是内存和磁盘的“吞金兽”
- 运维复杂:需要调优 JVM、分片策略、索引生命周期
- 成本高:存储成本、计算成本、人力成本
2.4 适用场景
- 需要全文检索(如安全日志分析)
- 需要复杂的日志分析(如用户行为分析)
- 有专业的运维团队
3. Loki 栈深度解析
3.1 架构组成
- Loki:日志聚合系统,只存储标签和索引,不存储日志内容