Navicat 博客

数据库可观测性与监控的区别是什么? 2026 年 6 月 12 日,由 Robert Gravelle 撰写

在数据库和基础设施的相关讨论中,“监控” 和 “可观测性” 这两个术语经常被交替使用,但它们实际上指的是截然不同的两件事。弄清楚它们之间的区别并非仅仅是语义上的探讨;它会影响你对系统的检测方式,决定在出现问题时你能回答哪些问题,以及最终能在问题影响到最终用户之前多快地解决这些问题。

什么是数据库监控?

监控是指持续跟踪一组预先设定的指标,并在这些指标达到特定阈值时发出警报的过程。它能回答这样一个问题:是否出现了问题?监控系统会监测诸如 CPU 利用率、内存使用量、活跃连接数、磁盘 I/O 以及查询吞吐量等指标。一旦这些值超出你所设定的阈值(例如,CPU 持续超过 90%运行达五分钟)——那么就会触发警报。

监控本质上是被动式的。你需事先确定要监测的内容,根据预期设定阈值,并等待当预期未得到满足时收到通知。这种方法对于已知的故障模式非常有效:如果你的数据库之前因连接池耗尽而出现故障,你就监控连接数量,并在再次出现耗尽情况之前发出警报。监控至关重要、经过实战检验且被广泛理解。但它的局限性在于,它只能发现你已预料到的问题。

什么是数据库可观测性?

可观测性是一个源自控制理论的更广泛概念,随着分布式系统的兴起而在软件工程中得到推广。监控能告诉你某事出了问题,而可观测性则能帮助你理解其原因。一个可观测的系统是这样设计的:它会通过指标、日志和跟踪等方式公开足够的内部状态,使得即便故障完全新颖且出乎意料,你也能推断出其行为模式。

其关键区别在于可观察性是主动且探索性的。你并非只是等待已知阈值触发;而是构建一个数据丰富的系统,以便能够就其内部所发生的情况提出任意问题。对于数据库而言,这可能意味着能够将查询延迟的突然上升与特定的表锁相关联,追踪一个缓慢的查询的整个执行计划,或者将一个实例的行为与历史基准进行比较,以便在出现故障之前识别出细微的偏差。

可观测性并非取代监控,而是对其进行了扩展。可以将监控视为警报系统,而可观测性则相当于监控摄像头网络。警报会告知你某扇门被打开;而摄像头则会告诉你是谁打开了门、他们走的方向以及他们携带了什么。

为何这种差异在实际中会产生影响

现代数据库环境已变得极其复杂。团队需要管理多个数据库引擎、云托管实例、读取副本以及复制拓扑结构,而且往往需要同时进行这些操作。在这样的环境中,仅仅对 CPU 使用率设置一个简单的阈值警报通常不足以诊断出问题。问题的根源可能是单个长时间运行的查询、最近部署中引入的优化不佳的连接操作,或者是由于不寻常的流量模式导致的锁竞争。要追踪这种因果关系链,需要具备可观测性,而不仅仅是监控功能。

其实际意义在于,那些只专注于监控的团队将会发现自己只能对警报做出反应,但却没有所需的数据来迅速诊断问题。而可观测性则填补了这一空白,它能确保在出现问题时,相关的证据记录就已经准备就绪。

Navicat Monitor:弥合差距

Navicat Monitor 3 是一款出色的工具典范,它将监控和可观测性功能集于一体,归于同一款产品之中。这使得它非常适合那些不想将不同解决方案拼凑起来的团队使用。

Screenshot_Navicat_Monitor_Dashboard_Comfort.png

在监控方面,Navicat Monitor 采用无代理架构,通过 SSH 或 SNMP 连接到你的数据库实例,无需在服务器上安装任何软件。它会定期收集指标——涵盖 CPU 负载、内存使用、磁盘利用率、网络 I/O、表锁等——并以实时和历史图表的形式呈现这些数据。至关重要的是,它支持 MySQL、MariaDB、PostgreSQL 和 SQL Server,以及云托管数据库,包括 Amazon RDS、Amazon Aurora、谷歌云、甲骨文云和 Microsoft Azure。可以为任何指标配置自定义警报阈值,通过电子邮件、短信或 SNMP 发送通知,并且可以对服务器组进行组织,以便将警报配置一致地应用于相关实例。

Navicat Monitor 在可观测性领域发挥作用的方式在于其查询分析器和 SQL 分析工具。查询分析器能够以图形方式呈现查询日志数据,从而能够直观地展示查询活动的统计数据、分析单个 SQL 语句,并迅速找出长时间运行的查询。它并非只是简单地发出查询性能下降的警报,而是为你提供了解决方案所需的工具,让你能够了解哪些查询是造成问题的原因以及原因何在。对于 PostgreSQL 实例可用的 SQL 分析工具则更进一步:它支持创建基于你定义的过滤条件的定期跟踪,这些跟踪会收集查询执行数据,并且每个跟踪的执行计划都可以以可视化、图表或文本格式查看。这种视角的结合正是实际中可观测性的样子——能够在多个详细程度上深入探究内部系统行为。

Screenshot_Navicat_Monitor_SQL_Profiler.png

Navicat Monitor 还支持自定义指标,使团队能够编写自己的查询来收集针对其环境的特定性能数据,并根据结果设置警报。这种可扩展性是一个重要的可观测性特性:这意味着该工具可以被定制以展示对你特定数据库工作负载而言最为重要的内部状态,而不仅仅是对所有人而言都重要的通用信号。

Screenshot_Navicat_Monitor_Custom_Metrics.png

结语

监控能告诉你何时出现了问题;可观测性则能为你提供理解问题原因的背景信息。两者缺一不可,而最出色的数据库团队会将它们视为相辅相成而非相互冲突的优先事项。像 Navicat Monitor 3 这样的工具,将实时警报和阈值监控与深度查询分析及执行跟踪相结合,使得能够缩小两者之间的差距,并从仅仅对数据库问题做出反应转变为真正地理解并预防这些问题。

分享
文章归档