工程资源 / 日志监控

日志监控

日志是 IT 世界中默默无闻的英雄,它们以一丝不苟的精度捕捉系统运行的关键细节。虽然这些记录可能看起来像是无尽的数据流,但它们掌握着优化性能、增强安全性和确保系统可靠性的关键。

本指南将介绍管理日志的实用技术以及简化这项基本任务的工具。我们将从结构化和非结构化日志记录的基础知识开始,探讨什么是日志监控以及我们为什么需要它,并了解组织如何在日志监控系统的中心使用 ClickHouse。

什么是日志?

日志是捕获计算机系统、应用程序或网络中发生的事件的数字记录。可以将它们视为系统的日记 - 从例行操作到严重错误,记录所有发生事件的时间顺序记录。每次用户登录、访问文件或发生错误时,这些事件都会被记录下来,其中包含时间戳、事件类型和相关数据等关键详细信息。

日志最常见的来源是应用程序本身。现代应用程序被设计为自动发出日志,记录其操作、性能指标、用户交互以及遇到的任何问题。这些日志充当开发人员和系统管理员的线索,帮助他们了解系统内部发生的情况并在出现问题时进行故障排除。

日志格式

日志可以以各种格式生成和捕获。原始日志通常是简单的文本文件,每行代表一个事件,隐式地遵循由生成它们的应用程序或系统确定的特定格式。例如,HTTP Web 服务器可能会记录每个请求,其中包含时间戳、IP 地址、请求的 URL 和响应代码等详细信息,并按照预定的顺序排列。下面显示了这种类型的日志消息的示例

192.168.1.1 - - [22/Jan/2025:12:00:00 +0000] "GET /index.html HTTP/1.1" 200 612 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36"

结构化日志记录已变得越来越流行,尤其是在现代应用程序中。这种方法以机器可读的结构(最常见的是 JSON)格式化日志。JSON 日志条目可能包括时间戳、严重性级别、消息和任何相关元数据的明确标记字段。这种结构化格式使日志更易于以编程方式解析、搜索和分析。下面显示了这种类型的日志消息的示例

{
  "timestamp": "2025-01-22T12:00:00Z",
  "level": "INFO",
  "message": "User logged in successfully.",
  "ip_address": "192.168.1.1",
  "user_id": 42,
  "method": "POST",
  "endpoint": "/login",
  "response_code": 200,
  "response_time_ms": 350,
  "user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36"
}

日志类型

日志通常分为两大类:系统日志和应用程序日志。

系统日志提供有关操作系统 (OS) 级别发生的事件的信息。这些日志捕获系统级事件,例如

  • 身份验证尝试
  • 连接请求
  • 服务和进程启动/停止
  • 系统配置更改
  • 系统错误
  • 性能指标
  • 资源使用情况

另一方面,应用程序日志记录软件级别发生的事件。这些日志由专门的服务器软件(如代理或防火墙)和其他软件应用程序生成。应用程序日志通常包括

  • 应用程序级身份验证
  • CRUD(创建、读取、更新、删除)操作
  • 应用程序错误和异常
  • 应用程序特定功能
  • 用户互动

应用程序日志对于开发人员和系统管理员尤其有价值,因为它们提供了对其软件在生产环境中的行为方式的详细见解。例如,Web 应用程序可能会记录每个 API 请求、数据库查询或用户会话,而防火墙可能会记录所有尝试的连接和安全相关事件。
系统日志和应用程序日志的结合提供了组织 IT 基础设施的全面视图,从而能够进行有效的监控、故障排除和安全分析。

什么是日志监控?

日志监控涉及持续捕获和观察日志数据,以识别需要注意的异常、问题或模式。虽然日志监控在其最基本的层面上可能意味着简单地登录服务器并手动查看日志文件,但现代系统需要一种远比这复杂得多的方法。

由于以下几个原因,当今系统的复杂性使得传统的手动日志监控变得不切实际。首先,微服务架构的兴起意味着应用程序会在众多服务和容器中生成大量的日志。其次,现代基础设施将服务器视为“牲畜而不是宠物”——这意味着服务器会定期创建和销毁,而不是精心维护的单个机器。此外,随着无服务器架构的日益普及,甚至可能没有传统意义上的持久服务器可供访问。

这些挑战促使了综合日志管理系统的发展,这些系统可以自动收集、处理和分析来自整个基础设施的日志数据。现代日志监控涉及系统地从所有来源收集日志,将它们集中在一个系统中,并实施自动化工具以帮助立即识别和响应问题。

目标是将原始日志数据转化为可操作的见解,使团队能够

  • 快速检测并响应问题
  • 了解系统行为
  • 跟踪性能指标
  • 保持安全警惕
  • 确保满足合规性要求

这种系统化的日志监控方法已成为在当今复杂的技术环境中维护可靠和安全系统所必需的。

为什么日志监控是必要的?

由于以下几个原因,日志监控对于维护健康、高效的系统和应用程序至关重要。

系统可见性是了解基础设施健康状况的基础。通过日志监控,团队可以实时了解系统行为,并可以跟踪用户活动和系统操作。这种全面的视图使组织能够准确了解其整个基础设施在任何给定时刻发生的情况。

服务可用性是日志监控支持的另一个关键方面。通过持续监控日志,团队可以在系统中断发生时快速检测和诊断。这种快速检测使组织能够更快地响应关键问题,帮助组织维护服务级别协议 (SLA) 并最大限度地减少系统停机时间。当系统遇到问题时,日志会提供必要的信息来了解问题所在以及如何修复它。

性能监控对于维持高效运营同样至关重要。通过日志监控,团队可以随着时间的推移跟踪系统性能指标,在瓶颈和潜在问题变得严重之前识别它们。这包括监控资源使用情况和吞吐量,帮助团队了解性能可能在何时何地下降。组织可以通过及早发现性能问题并在用户受到重大影响之前采取纠正措施。

有效的日志监控使问题检测和解决变得简单明了。当出现问题时,日志有助于准确查明哪些服务或系统组件出现故障或正在苦苦挣扎。这种详细的信息有助于团队更快地识别问题的根本原因并实施解决方案。日志监控还可以揭示指示潜在未来问题的模式,从而实现主动维护和系统优化。

通过实施有效的日志监控,组织可以维护可靠的服务、优化性能,并在问题对用户或业务运营产生重大影响之前解决问题。这种主动的系统管理方法在当今的数字环境中至关重要,在数字环境中,系统可靠性和性能直接影响业务成功。

日志监控工具

组织通常从开箱即用的监控解决方案开始其日志记录之旅。这些工具通过预构建的仪表板和可视化、即用型警报系统以及与标准服务的内置集成,提供即时价值。凭借快速设置、部署时间和托管基础设施,它们为系统可观测性提供了一条简化的路径。

流行的解决方案包括 Datadog、Splunk、Graylog、New Relic 和 Sumo Logic。这些工具是刚开始可观测性之旅的组织的绝佳起点,它们提供强大的功能,而无需构建和维护自定义基础设施。

使用 ClickHouse 进行日志监控

随着组织的成长,他们生成的日志数据量每天可能达到 PB 级别。传统的日志监控工具在这种规模下通常变得成本过高,导致公司限制日志保留时间。但是,访问广泛的历史日志对于工程师彻底调查和解决问题至关重要。

ClickHouse 以其强大的功能经济高效地管理海量数据,提供了一种经济的替代方案。

我们在 ClickHouse 的历程完美地证明了这一点。在扩展我们的云服务时,我们面临着许多大型组织在使用传统日志记录解决方案时遇到的相同挑战。我们构建了一个 19 PiB 日志记录平台的经验,该平台处理超过 37 万亿行数据,同时保持 6 个月的保留期,这为了解 ClickHouse 的可能性提供了一个引人注目的示例。

➡️ 阅读 我们如何使用 ClickHouse 构建 19 PiB 日志记录平台并节省数百万美元

这种转变并非我们独有。滴滴是全球最大的出行平台之一,为超过 4.5 亿用户提供服务,他们在 Elasticsearch 实施方面也面临着类似的挑战。他们成功迁移到 ClickHouse 进行日志存储,硬件成本降低了 30%,同时每天处理 PB 级的日志量。他们的故事为 ClickHouse 在处理企业级日志监控方面的能力提供了另一个极好的例证。

➡️ 阅读 滴滴从 Elasticsearch 迁移到 ClickHouse,构建新一代日志存储系统

Trip.com 迁移到 ClickHouse 以构建其日志记录平台,这为大规模日志管理的成功提供了另一个引人注目的案例研究。在 4PB Elasticsearch 部署面临重大挑战(包括集群不稳定、性能下降和高成本)之后,Trip.com 成功迁移到 ClickHouse 并扩展到超过 40PB 的数据。

结果非常显著:他们实现了 50% 的存储空间节省,查询性能提高了 4-30 倍,P90 查询时间低于 300 毫秒,并且总体拥有成本显著降低。他们的成功源于 ClickHouse 的列式存储设计、高效压缩、基于 SQL 的查询和卓越的可扩展性。该平台现在可以处理大量的并发工作负载,同时保持更长的保留期,这证明了 ClickHouse 能够经济高效地管理企业级日志记录需求。

➡️ 阅读 trip.com 如何从 Elasticsearch 迁移并使用 ClickHouse 构建 50PB 日志记录解决方案

分享此资源
关注我们
X imageSlack imageGitHub image
Telegram imageMeetup imageRss image
©2025ClickHouse, Inc. 总部位于加利福尼亚州湾区和荷兰阿姆斯特丹。