微服务:从可观测性到通信与扩展的全面解析
1. 统一日志层解决方案
1.1 Logstash
Logstash 是最流行的统一日志层解决方案之一,目前归 Elastic 公司所有,也就是 Elasticsearch 的背后公司。在 ELK 栈(现称 Elastic 栈)中,Logstash 代表“L”。它最初用 Ruby 编写,后移植到 JRuby,这使得它比较消耗资源,因此不建议在每台机器上运行,更适合作为日志转发器,搭配轻量级的 Filebeat 在每台机器上进行日志收集。
1.2 Filebeat
Filebeat 是 Beats 系列产品的一部分,旨在提供一个轻量级的 Logstash 替代方案,可直接与应用程序配合使用。Beats 开销低且扩展性好,而集中式的 Logstash 负责处理繁重的任务,如转换、过滤和转发。除了 Filebeat,Beats 系列的其他产品还包括:
- Metricbeat:用于性能监控
- Packetbeat:用于网络数据监控
- Auditbeat:用于审计数据监控
- Heartbeat:用于正常运行时间监控
1.3 Fluentd
Fluentd 是 Logstash 的主要竞争对手,也是一些云提供商的首选工具。它采用模块化方法,有各种数据源、数据输出的插件,以及多种过滤器和中间件。Fluentd 比 Logstash 更节省资源,但在大规模运行时也不是完美的解决方案。与 Filebeat 对应的、可与 Fluentd 配合使用的是 Fluent Bit。