微服务日志记录与监控
传统日志记录的问题
在微服务架构中,每个微服务通常将日志写入本地文件系统。例如,微服务 M1 调用 M3 时,它们会把各自的日志写入本地文件。这就导致难以关联和理解端到端的事务流程。而且,当多个微服务实例分布在不同机器上时,如两个 M1 实例和两个 M2 实例,在服务级别进行日志聚合也变得困难。
集中式日志记录解决方案
为了解决上述问题,需要重新思考传统的日志记录方案。新的日志记录解决方案应具备以下能力:
- 收集所有日志消息并进行分析。
- 端到端地关联和跟踪事务。
- 长时间保存日志信息以进行趋势分析和预测。
- 消除对本地磁盘系统的依赖。
- 聚合来自多个源(如网络设备、操作系统、微服务等)的日志信息。
解决方案是集中存储和分析所有日志消息,将日志存储和处理与服务执行环境分离。大数据解决方案更适合处理大量日志消息,而不是在微服务执行环境中进行存储和处理。
集中式日志记录解决方案包含以下组件:
- 日志流(Log streams) :来自源系统(如微服务、其他应用程序或网络设备)的日志消息流。在基于 Java 的系统中,类似于流式的 Log4j 日志消息。
- 日志发送器(Log shippers) :负责收集来自不同源或端点的日志消息,并将其发送到其他端点,如写入数据库、推送到仪表盘或发送到流处理端点进行实时处理。
- 日志存储(Log store) :用于存储所有日志消息,以便进行实时分析和趋势分析。通常是一个 No
超级会员免费看
订阅专栏 解锁全文
6001

被折叠的 条评论
为什么被折叠?



