系统设计:分布式日志记录
让我们了解分布式日志记录系统设计的基础知识。
日志记录
日志文件记录了软件应用程序中发生的事件的详细信息。这些详细信息可能包括微服务、事务、服务操作或任何有助于调试事件流的内容。日志记录对于监视应用程序的流程至关重要。
日志记录的必要性
在理解分布式系统中事件流的情况下,日志记录非常重要。虽然看起来可能是一项繁琐的任务,但在遇到失败或安全漏洞时,日志记录有助于确定系统何时以及如何失败或被入侵。它还可以帮助找出失败或入侵的根本原因。它减少了修复系统的平均时间(MTTR)。
为什么我们不会简单地打印我们的语句以了解应用程序的流程呢?这是可能的,但并不理想。简单的打印语句无法追踪消息的严重程度。打印功能的输出通常会到达终端,而我们的需求可能是将这些数据存储在本地或远程存储上。此外,我们可能会有成千上万条打印语句,因此最好将它们结构化和存储。
服务在许多节点上运行的并发活动可能需要因果信息,以正确地拼接事件流程。在处理分布式系统中的因果关系时,我们必须小心。我们使用日志记录服务来适当地管理我们分布式软件的诊断和探索性数据。
日志记录使我们能够了解我们的代码,找到未预见的错误,修复已识别的错误,并可视化应用程序的性能。这样,我们就能了解生产环境的运作方式,以及系统中的进程如何运行。
日志分析可用于以下情况:
- 故障排除应用程序、节点或网络问题。
- 遵守内部安全政策、外部法规和合规性。
- 识别和响应数据泄露和其他安全问题。
- 了解用户的行为,以输入到推荐系统中。
我们将如何设计分布式日志记录系统?
我们将把分布式日志记录系统设计分为以下两个部分:
介绍:我们将讨论日志记录在分布式级别下的工作原理。我们还将展示如何限制日志文件的巨大大小,并对其进行结构化。这一课程将指导我们考虑记录有关系统信息时应考虑的要求。
设计:在这一课程中,我们将定义分布式日志记录系统的需求、API设计和详细设计。