0Pricing
DevOps Bootcamp · 课时

集中式日志解决方案

搭建集中式日志系统(例如了解 ELK 基础),以汇总和分析容器日志。

集中式日志解决方案 是 CoddyKit 上的免费 DevOps Bootcamp 课时。 这是第 2 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 DevOps Bootcamp 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 DevOps Bootcamp 课程共包含 4 节课。

为什么要集中管理日志?

假设您有许多容器,每个容器都会生成日志。如果某个错误分散在数百个日志文件中,您要如何找到它?

  • 日志分散:日志位于不同的服务器或容器中,很难查找。
  • 没有实时洞察:问题发生时,您无法轻松发现其中的模式或问题。
  • 分析困难:手动翻查日志既耗时又容易出错。

这正是集中式日志记录发挥作用的地方!

集中式日志解决方案 — 插图 1

什么是集中式日志记录?

集中式日志记录是指将所有应用程序和基础设施中的日志收集到一个中央位置。

您可以把它想象成管理所有系统消息的控制塔。您不必分别查看各个容器的日志,而是可以通过一个统一的平台来:

  • 聚合:将所有日志汇集到一起。
  • 存储:将日志保存在结构有序且可搜索的数据库中。
  • 分析:搜索、筛选日志数据并将其可视化,从中获取洞察。

这样可以显著加快故障排查并提高效率。

系统的关键组件

一个典型的集中式日志记录系统包含若干相互协作的关键部分:

  • 日志代理:运行在每台服务器或容器上的小型程序,用于收集日志。
  • 日志聚合器:从代理接收日志,对其进行处理,然后将其发送到存储系统的服务。
  • 日志存储:针对存储和查询大量日志数据进行优化的数据库。
  • 可视化工具:用于浏览、搜索和可视化日志的仪表板与界面。

这些组件确保日志能够从源头顺畅地流向分析环节。

认识 ELK Stack

ELK Stack 是一套广受欢迎的开源集中式日志记录工具套件。ELK 代表:

  • Elasticsearch:搜索和分析引擎。
  • Logstash:数据处理流水线。
  • Kibana:数据可视化仪表板。

它们协同工作,为收集、存储和分析应用程序及基础设施中的日志提供了强大的解决方案。

Elasticsearch:数据存储

Elasticsearch 是 ELK Stack 中负责数据存储和搜索的核心组件。它是一款高度可扩展的分布式全文搜索引擎。

它会接收经过处理的日志,并以一种便于快速搜索和分析的方式存储这些日志,即使数据量达到数 PB 也能如此。

  • 以 JSON 文档的形式存储日志。
  • 提供强大的搜索功能。
  • 可横向扩展以处理大型数据集。

Logstash:数据传输工具

Logstash 充当数据处理流水线。它从各种来源收集数据,对数据进行转换,然后将其发送到“存储库”(通常是 Elasticsearch)。

它非常灵活,可以处理许多不同的日志格式和来源。

  • 输入:接收日志(例如来自文件、网络或代理的日志)。
  • 筛选:解析、转换并丰富日志数据。
  • 输出:将处理后的数据发送到 Elasticsearch 或其他目标位置。

Kibana:可视化工具

Kibana 是您查看 Elasticsearch 中所存储数据的窗口。它是一款强大的可视化和仪表板工具。

借助 Kibana,您可以:

  • 搜索和探索:轻松查询日志数据。
  • 可视化:根据日志创建图表、统计图和地图。
  • 仪表板:构建交互式仪表板,实时监控系统运行状况和应用程序行为。

它可以帮助您将原始数据转化为可执行的洞察。

生成容器日志

在收集日志之前,必须先生成日志!容器中的大多数应用程序都会将输出直接写入 stdout(标准输出)或 stderr(标准错误)。

Docker 会将这些数据流捕获为容器日志。请尝试运行以下简单命令,查看容器生成一些输出:

docker run --rm alpine/git ls -l /

使用 ELK 的日志概念流程

下面是 ELK 设置中日志流转过程的简化示意:

  1. Docker 容器中的应用程序将日志写入 stdout。
  2. 日志代理(例如通常与 ELK 搭配使用的 Filebeat)收集这些日志。
  3. 代理将日志发送给 Logstash 进行处理。
  4. Logstash 解析并转换日志。
  5. 处理后的日志被发送到 Elasticsearch 进行存储。
  6. Kibana 连接到 Elasticsearch,以便将日志可视化并进行搜索。

这样就为所有容器日志建立了一条清晰的流转路径。

快速检查:ELK 的职责

以下哪些说法正确描述了 ELK Stack 中各组件的职责?

回顾:集中式日志记录

做得很好!您已经学习了集中式日志记录和 ELK Stack 的基础知识。

  • 集中式日志记录会将来自多个来源的日志聚合到同一位置。
  • 它有助于更快地排查故障并获得更深入的洞察。
  • ELK Stack(Elasticsearch、Logstash、Kibana)是一种广受欢迎的解决方案。
  • Elasticsearch 负责存储和建立日志索引。
  • Logstash 负责处理和转换日志。
  • Kibana 负责将日志可视化并进行探索。

这一强大的组合可以帮助您有效管理和理解容器日志。

常见问题解答

「集中式日志解决方案」课时是免费的吗?

是的 — 「集中式日志解决方案」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 DevOps Bootcamp 课程的其余内容,请升级到 CoddyKit PRO。 DevOps Bootcamp 课程共包含 4 节课。

「集中式日志解决方案」这节课中我会学到什么?

搭建集中式日志系统(例如了解 ELK 基础),以汇总和分析容器日志。 你通过在浏览器中直接运行的动手代码来练习 DevOps Bootcamp,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 DevOps Bootcamp 需要有经验吗?

无需任何先前经验。CoddyKit 上的 DevOps Bootcamp 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 2 节课,共 4 节。

「集中式日志解决方案」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 DevOps Bootcamp 课中编写并运行代码吗?

能。每节 DevOps Bootcamp 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. 监控简介
  2. 集中式日志解决方案
  3. 告警与事件响应
  4. 指标、仪表板与 SLI/SLO
← 返回 DevOps Bootcamp