第三方监控工具 - AWS 规范性指导

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

第三方监控工具

在某些情况下,除了 AWS 为 Amazon RDS 提供的全套云原生可观测性和监控工具之外,您可能还需要使用其他软件供应商的监控工具。此类场景包括混合部署,在这种部署中,您的本地数据中心可能运行多个数据库,而另一组数据库则在 AWS 云中运行。如果您已建立企业可观测性解决方案,则可能需要继续使用现有工具并将其扩展到您的 AWS 云部署中。设置第三方监控解决方案的挑战通常在于作为云托管服务的 Amazon RDS 所实施的保护措施。例如,您无法在运行数据库实例的主机操作系统上安装代理软件,因为对数据库主机的访问被拒绝。但是,您可以在 CloudWatch 和其他 AWS 云服务之上进行构建,将许多第三方监控解决方案与 Amazon RDS 集成。例如,可以导出 Amazon RDS 指标、日志、事件和跟踪,然后将其导入第三方监控工具,以进行进一步分析、可视化和提醒。其中一些第三方解决方案包括 Prometheus、Grafana 和 Percona。

Prometheus 和 Grafana

Prometheus 是一种开源监控解决方案,可按给定的间隔从配置的目标收集指标。它是一种通用监控解决方案,可以监控任何应用程序或服务。当您监控 Amazon RDS 数据库实例时,CloudWatch 会从 Amazon RDS 收集指标。然后,使用开源导出程序(例如 YACE 导出程序或 CloudWatch 导出程序)将指标导出到 Prometheus 服务器。

  • YACE 导出程序通过在 CloudWatch API 的单个请求中检索多个指标,从而优化数据导出任务。指标存储在 Prometheus 服务器上后,服务器会评估规则表达式,并在观察到指定条件时生成提醒。

  • CloudWatch 导出程序由 Prometheus 官方维护。它通过 CloudWatch API 检索 CloudWatch 指标,并使用对 HTTP 端点的 REST API 请求,以与 Prometheus 兼容的格式将其存储在 Prometheus 服务器上。

在选择导出程序、设计部署模型及配置导出程序实例时,考虑 CloudWatchCloudWatch Logs 服务及 API 配额,因为将 CloudWatch 指标导出到 Prometheus 服务器是基于 CloudWatch API 实现的。例如,在单个 AWS 账户和区域中部署多个 CloudWatch 导出程序实例来监控数百个 Amazon RDS 数据库实例,可能会导致节流错误 (ThrottlingException) 和代码 400 错误。要克服此类限制,请考虑使用 YACE 导出程序,该导出程序经过优化,可在单个请求中收集多达 500 个不同的指标。此外,要部署大量 Amazon RDS 数据库实例,您应考虑使用多个实例AWS 账户,而不是将工作负载集中到单个 AWS 账户,并限制每个 AWS 账户中的导出程序实例数量。

提醒由 Prometheus 服务器生成并由 Alertmanager 处理。此工具负责对提醒进行重复数据删除、分组和路由到正确的接收者,例如邮件、SMS 或 Slack,或者启动自动响应操作。另一个名为 Grafana开源工具显示这些指标的可视化效果。Grafana 提供丰富的可视化小组件,例如高级图表、动态控制面板以及临时查询和动态深入分析等分析功能。它还可以搜索和分析日志,并包括提醒功能,以持续评估指标和日志,并在数据与提醒规则匹配时发送通知。

将 Prometheus 和 Grafana 与 Amazon RDS 和 CloudWatch 结合使用

Percona

Percona 监控和管理(PMM)是一款免费的开源数据库监控、管理和可观测性解决方案,适用于 MySQL 和 MariaDB。PMM 从数据库实例及其主机收集数千个性能指标。它提供了用于在控制面板中可视化数据的 Web 用户界面以及其他功能,例如用于数据库运行状况评测的自动顾问。您可以使用 PMM 监控 Amazon RDS。但是,PMM 客户端(代理)未安装在 Amazon RDS 数据库实例的底层主机上,因为它无法访问这些主机。相反,该工具连接到 Amazon RDS 数据库实例,查询服务器统计数据、INFORMATION_SCHEMA、系统架构和性能架构,并使用 CloudWatch API 获取指标、日志、事件和跟踪。PMM 需要 AWS Identity and Access Management(IAM)用户访问密钥(IAM 角色),并会自动发现可供监控的 Amazon RDS 数据库实例。PMM 工具专为数据库监控而设计,且比 Prometheus 收集更多数据库特定指标。要使用 PMM 查询分析控制面板,必须将性能架构配置为查询源,因为未为 Amazon RDS 安装查询分析代理,也无法读取慢速查询日志。相反,它直接从 MySQL 和 MariaDB 数据库实例中查询 performance_schema,以获取指标。PMM 的突出特点之一是它能够就该工具在数据库中发现的问题向 DBA 发出提醒和建议。PMM 提供一系列检查,可检测常见的安全威胁、性能下降、数据丢失和数据损坏。

除了这些工具之外,市场上还有几种可与 Amazon RDS 集成的商业可观测性和监控解决方案。示例包括 Datadog 数据库监控Dynatrace Amazon RDS 监控AppDynamics 数据库监控