数据库监控:关键指标和注意事项

squids.cn】 全网zui低价RDS,免费的迁移工具DBMotion、数据库备份工具DBTwin、SQL开发工具等

听到模糊的说法"我们的数据库有问题"对于任何数据库管理员或管理员来说都是一场噩梦。有时是真的,有时不是,到底问题出在哪里呢?真的是数据库有问题吗?或者是网络、应用程序、用户或其他可能情况的问题?如果是数据库的话,有什么问题吗?

图 1:DBMS 使用情况

数据库是现代企业的重要组成部分,需要考虑多种供应商和类型。数据库可以托管在数据中心、云中,或同时托管在两者中以进行混合部署。数据库中存储的数据可以通过多种方式使用,包括网站、应用程序、分析平台等。

作为数据库管理员或管理者,您希望了解数据库的运行状况和趋势。数据库监控与数据库本身一样重要。如果您不能保证数据的可用性和准确性,您的数据有多好?

数据库监控注意事项

数据库引擎和数据库是托管在复杂 IT 基础设施上的系统,该基础设施由各种组件组成:服务器、网络、存储、电缆等。应全面考虑数据库监控,同时考虑所有基础设施组件和数据库监控本身。

图2:数据库监控三叶草

我们再来谈谈数据库监控。如图 2 所示,我将监控分为四个支柱:可用性、性能、活动和合规性。这些是广泛但相互关联且重叠的支柱。您可以添加第五片"三叶草"来进行安全监控,但我将监控的这一方面纳入到活动和合规性中,出于同样的原因,容量规划属于可用性监控。

让我们更深入地了解监控概念。虽然可用性监控似乎是一个很好的起始主题,但我将故意从性能开始,因为性能问题可能会导致数据库不可用,而且可用性监控对于任何系统都是"监控 101"。

性能监控

性能监控是捕获、分析硬件、操作系统、网络和数据库层的性能指标并发出警报的过程。它可以帮助避免计划外停机、改善用户体验并帮助管理员有效管理其环境。

本机数据库监控

大多数(如果不是全部)企业级数据库系统都附带一组工具,允许数据库专业人员检查内部和/或外部数据库状况以及操作状态。这些是特定于系统的技术工具,需要中小企业知识。在大多数情况下,它们是时间点性能数据,历史价值有限或不存在。一些供应商提供了额外的工具来简化性能数据收集和分析。

随着基于云的产品(PaaS 或 IaaS)的扩展,我注意到监控数据收集以及可用的分析和报告选项方面有了一些改进。然而,本机性能监控仍然是数据库中小企业的一套工具。

企业监控系统

企业监控系统 (EMS) 提供了一种集中方法来系统地审查 IT 系统。此类系统允许监控大多数 IT 基础设施组件,从而将受监督的系统与一组仪表板整合在一起。有多家供应商提供全面的数据库监控系统来满足您的部分或全部监控需求。此类解决方案可以涵盖多个数据库引擎或特定于特定数据库引擎或监控方面。例如,如果您只需要监视 SQL 服务器并且对查询的性能感兴趣,那么您需要一个能够识别瓶颈和争用的监视系统。

让我们讨论分布在全球多个数据中心的数千个数据库实例(本地和云中)的环境。这涉及通过许多受监控设备、数据库类型多样性以及数据中心的地理位置和您监控的实际数据来监控复杂性的增长。必须对同一管理下的所有数据库系统有一个全局视图,并能够识别问题,最好是在问题影响用户之前。

EMS 旨在帮助组织将数据库监控与 IT 基础设施监控保持一致,大多数解决方案包括一组开箱即用的仪表板、报告、图表、警报、有用提示以及运行状况历史和趋势分析。他们还为性能计数器/指标预设了行业概述的阈值,应根据您的具体情况进行调整。

可管理性和行政开销

本机数据库监控通常由数据库管理员 (DBA) 团队处理。如果需要自动化、扩展或进行任何其他修改,那么 DBA/开发团队将负责处理。这可以由大型企业环境中的 DBA 在内部 DBA 特定用例的基本级别上进行有效管理。

引入第三方系统(如EMS)需要管理。假设,供应商已为您的公司安装并配置了监控。这种伙伴关系可以继续下去,或者内部人员可以接管 EMS 管理(经过适当的培训)。没有"错误"的方法------它完全取决于您公司的运营模式并进行相应的评估。

数据访问和审计合规性监控

您的数据库必须安全!未经授权访问敏感数据可能与数据丢失一样有害。数据泄露、恶意活动(有意或无意)------没有公司会对这样的宣传感到高兴。这让我们需要审计合规性和数据访问监控。关于数据合规性有许多法律法规。有些是行业间通用的,有些是行业特定的,有些是国家特定的。例如,许多国家的所有上市公司都要求遵守 SOX,而美国医疗保健必须遵守 HIPAA 法规。

数据库管理团队必须实施一套政策、程序和流程,以执行适用于其公司的法律和法规。审计报告可能是一个乏味且繁琐的过程,但它可以而且应该自动化。在实施审计合规性和数据访问监控的同时,您还可以改进数据库审计报告 - 它实际上是相同的数据集。

为了遵守各种法律法规,我们需要监控哪些内容?这些通常是强制性的:

  • 访问更改和访问尝试
  • 设置和/或对象修改
  • 数据修改/访问
  • 数据库备份

谁应该受到监控?通常,对数据库或数据进行更改的访问受到严格控制:

  • 特权帐户------通常是 DBA;理想情况下,他们不应该能够访问数据,但这在他们的工作中并不总是可能的,因此必须监控活动
  • 服务帐户 -- 具有修改对象或数据权限的数据库或应用程序服务帐户
  • "超级"帐户 -- 有权修改数据库对象或数据的用户
  • "较低"帐户 -- 具有只读活动的帐户

与性能监控一样,大多数数据库引擎都提供了一组审核工具和机制。另一种选择是第三方合规性软件,它使用数据库本机审计、日志和跟踪来捕获与合规性相关的数据。它提供审计数据存储功能,最重要的是,提供一组合规性报告和仪表板,以遵守各种合规性策略。合规性复杂性直接取决于适用于您公司的法规以及数据库生态系统的多样性和规模。

在我们监控访问和合规性的同时,我们希望确保我们的数据不被滥用。当检测到未经授权的访问或异常数据使用时,应采取适当的措施。一些审计合规性监控系统提供了阻止异常活动的方法。

数据损坏和威胁

数据库数据损坏是一个严重的问题,可能导致有价值数据的永久丢失。通常,数据损坏是由于硬件故障造成的,但也可能是由于数据库错误甚至编码错误造成的。现代数据库引擎具有检测并有时防止数据损坏的内置功能。数据损坏将生成适当的错误代码,应对其进行监视和突出显示。检查数据库完整性应该是定期维护过程的一部分。

其他威胁包括有意或无意的数据修改和勒索软件。虽然 DBA 可以检测到数据损坏和恶意数据修改,但勒索软件威胁超出了数据库专业人员的监控范围。必须有一个防弹备份来从这些威胁中恢复。

关键数据库性能指标

数据库性能指标是极其重要的数据点,可衡量数据库系统的健康状况并帮助数据库专业人员保持高效的支持。有些指标特定于数据库类型或供应商,我将它们概括为"内部计数器"。

可用性

监控的第一步是确定设备或资源是否可用。系统和数据库可用性之间只有一线之隔。数据库可能已启动并正在运行,但客户端可能无法访问它。话虽如此,我们需要监控以下指标:

  • 网络状态-- 您可以通过网络访问数据库吗?如果是,延迟是多少?虽然网络状态通常不属于 DBA 的直接责任,但数据库组件的配置参数可能会导致连接丢失。
  • 服务器上/下
  • 存储可用性
  • 服务上/下------数据库和操作系统支持团队之间的另一个共享领域
  • 数据库是否在线或离线

CPU、内存、存储和数据库内部指标

本质上可能升级为可用性问题的下一组重要服务器组件是 CPU、内存和存储。以下四个绩效领域紧密相连并相互影响:

  • 缺乏可用内存
  • CPU利用率高
  • 存储延迟或吞吐量瓶颈
  • 一组数据库内部计数器,可以为利用率问题提供更多内容

例如,内存不足可能会迫使数据库引擎更频繁地读取和写入数据,从而在 IO 系统上产生争用。100% CPU 使用率通常会导致整个数据库服务器停止响应。许多数据库内部计数器可以帮助数据库专业人员分析使用趋势并确定适当的操作来减轻潜在影响。

可观测性

数据库可观察性基于指标、跟踪和日志------我们根据上述讨论收集的内容。有很多因素可能会影响系统和应用程序的可用性以及客户体验。数据库性能指标只是一组可能的故障点。

支持数据库引擎下的基础设施是复杂的。为了成功监控数据库,我们需要在监控时清楚地了解整个生态系统及其组件的状态。从各个组件收集的相关性能数据对于在问题发生之前识别和解决问题有很大帮助。

整个数据库监控概念是数据驱动的,我们有责任让它为我们服务。监控数据需要告诉我们一个每个消费者都能理解的故事。借助数据库可观察性,这个故事可以是透明的,并提供数据库资产的清晰视图。

平衡监控

正如您从本文中可以了解到的那样,任何数据库环境中都存在许多故障点。虽然数据库监控是数据库专业人员的职责,但它需要多个团队的协作努力才能确保整个 IT 生态系统正常运行。那么什么情况下被认为是"过多"的监控,什么情况下又被认为是监控不够呢?我将使用 DBA 最喜欢的一句话:视情况而定

  • 评估您的环境- 拥有一个配置管理数据库会很有帮助。如果不这样做,请创建数据库和相应应用程序的完整清单:数据库大小、用户数量、维护计划、使用时间 - 尽可能多的详细信息。
  • 评估您的关键系统- 概述您的关键系统和相关数据库。这些很可能属于最大程度监控的类别:可用性、性能、活动和合规性。
  • 评估您的预算-- 分配给 IT 运营的现金流紧张的情况并不少见。您可能有也可能没有资金购买"我们监控一切"系统,并且某些监控方面必须在内部开发。
  • 找到一个中间立场------您的数据库监控方法对于您公司的要求是独一无二的。收集没有实际或可操作应用的监控数据是低效的。为数据库监控定义可操作的 KPI 是找到平衡的关键 - 监控您的团队可以使用哪些内容来确保系统可用性、稳定性和客户满意度。

请记住:成功的数据库监控是数据驱动的、主动的、持续的、可操作的和协作的。

作者:Akim Zubarchuk

更多内容请关注公号【云原生数据库

squids.cn,云数据库RDS,迁移工具DBMotion,云备份DBTwin等数据库生态工具。

相关推荐
高兴就好(石3 小时前
DB-GPT部署和试用
数据库·gpt
这孩子叫逆3 小时前
6. 什么是MySQL的事务?如何在Java中使用Connection接口管理事务?
数据库·mysql
Karoku0663 小时前
【网站架构部署与优化】web服务与http协议
linux·运维·服务器·数据库·http·架构
码农郁郁久居人下4 小时前
Redis的配置与优化
数据库·redis·缓存
MuseLss5 小时前
Mycat搭建分库分表
数据库·mycat
Hsu_kk5 小时前
Redis 主从复制配置教程
数据库·redis·缓存
DieSnowK5 小时前
[Redis][环境配置]详细讲解
数据库·redis·分布式·缓存·环境配置·新手向·详细讲解
程序猿小D5 小时前
第二百三十五节 JPA教程 - JPA Lob列示例
java·数据库·windows·oracle·jdk·jpa
Flerken1015 小时前
数据库语言、SQL语言、数据库系统提供的两种语言
数据库·sql·oracle
掘根6 小时前
【网络】高级IO——poll版本TCP服务器
网络·数据库·sql·网络协议·tcp/ip·mysql·网络安全