

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 監控工具
<a name="monitoring-tools"></a>

我們建議您使用可觀測性、監控和提醒工具來：
+ 深入了解 Amazon RDS 環境的效能
+ 偵測非預期和可疑的行為
+ 規劃容量並做出有關配置 Amazon RDS 執行個體的教育決策
+ 主動分析指標和日誌以預測潛在問題
+ 在違反閾值時產生提醒，以便在使用者受到影響之前疑難排解和解決問題

您可以選擇不同的選項和解決方案，包括 AWS提供的雲端原生可觀測性和監控工具和服務；免費的開放原始碼軟體解決方案；以及用於監控 Amazon RDS 資料庫執行個體的商業第三方解決方案。以下各節會討論其中一些工具。

若要判斷哪個工具最適合您的需求，請將每個工具的功能和功能與您組織的需求進行比較。我們也建議您評估工具，以簡化部署、組態和整合、軟體更新和維護、部署方法 （例如硬體或無伺服器）、授權、價格，以及組織特有的任何其他因素。

**章節**
+ [Amazon RDS 中包含的工具](amazon-rds-tools.md)
+ [CloudWatch 命名空間](cloudwatch-namespaces.md)
+ [CloudWatch 警示和儀表板](cloudwatch-dashboards.md)
+ [Amazon RDS Performance Insights](performance-insights-tools.md)
+ [Enhanced Monitoring (增強型監控)](enhanced-monitoring.md)
+ [AWS 其他服務](aws-monitoring-tools.md)
+ [第三方監控工具](third-party-monitoring-tools.md)

# Amazon RDS 中包含的工具
<a name="amazon-rds-tools"></a>

Amazon Relational Database Service (Amazon RDS) 是 中的受管資料庫服務 AWS 雲端。由於 Amazon RDS 是一項受管服務，可讓您免於執行大多數管理任務，例如資料庫備份、作業系統 (OS) 和資料庫軟體安裝、作業系統和軟體修補、高可用性設定、硬體生命週期和資料中心操作。 AWS 也提供一組完整的工具，可讓您為 Amazon RDS 資料庫執行個體建置完整的[可觀測性](https://aws.amazon.com/products/management-and-governance/use-cases/monitoring-and-observability/)解決方案。

Amazon RDS 服務中包含、預先設定並自動啟用一些監控工具。啟動新的 Amazon RDS 執行個體後，您可以立即使用兩種自動化工具：
+ **Amazon RDS 執行個體狀態**提供資料庫執行個體目前運作狀態的詳細資訊。例如，狀態碼包括*可用*、*已停止*、*建立*、*備份*和*失敗*。您可以使用 Amazon RDS 主控台、 AWS Command Line Interface (AWS CLI) 或 Amazon RDS API 來查看執行個體狀態。如需詳細資訊，請參閱 [Amazon RDS 文件中的檢視 Amazon RDS 資料庫執行個體狀態](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/accessing-monitoring.html#Overview.DBInstance.Status)。
+ **Amazon RDS 建議**提供資料庫執行個體、僅供讀取複本和資料庫參數群組的自動化建議。這些建議是透過分析資料庫執行個體用量、效能資料和組態提供，並做為指引提供。例如，*引擎版本過時*建議指出您的資料庫執行個體未執行最新版本的資料庫軟體，而且您應該升級資料庫執行個體，以受益於最新的安全性修正和其他改進。如需詳細資訊，請參閱[《Amazon RDS 文件》中的檢視 Amazon RDS 建議](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/monitoring-recommendations.html)。

# CloudWatch 命名空間
<a name="cloudwatch-namespaces"></a>

Amazon RDS 與 [Amazon CloudWatch](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_concepts.html) 整合，Amazon CloudWatch 是一種監控和提醒服務，適用於在其中執行的雲端資源和應用程式 AWS。Amazon RDS 會自動收集有關資料庫執行個體操作、使用率、效能和運作狀態的指標、日誌檔案、追蹤和事件，並將其傳送至 CloudWatch 以進行長期儲存、分析和提醒。

Amazon RDS for MySQL 和 Amazon RDS for MariaDB 會以一分鐘的間隔自動將一組預設指標發佈至 CloudWatch，無需額外費用。這些指標會收集到兩個*命名空間*，這是指標的容器：
+ [AWS/RDS 命名空間](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-metrics.html#rds-cw-metrics-instance)包含資料庫執行個體層級指標。範例包括 `BinLogDiskUsage`（二進位日誌佔用的磁碟空間量）、 `CPUUtilization`(CPU 使用率百分比）、 `DatabaseConnections`（與資料庫執行個體的用戶端網路連線數量） 等等。
+ [AWS/Usage 命名空間](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-metrics.html#rds-metrics-usage)包含帳戶層級用量指標，用於判斷您是否在 [Amazon RDS 服務配額](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Limits.html#RDS_Limits.Limits)內操作。範例包括 `DBInstances`（您 AWS 帳戶或區域中的資料庫執行個體數目）、 `DBSubnetGroups` （您 AWS 帳戶或區域中的資料庫子網路群組數目） 和 `ManualSnapshots`（您 AWS 帳戶或區域中手動建立的資料庫快照數目）。

CloudWatch 保留如下指標資料：
+ 3 小時：期間少於 60 秒的高解析度自訂指標會保留 3 小時。3 小時後，資料點會彙總為 1 分鐘期間指標，並保留 15 天。
+ 15 天：期間為 60 秒 (1 分鐘） 的資料點會保留 15 天。15 天後，資料點會彙總為 5 分鐘期間指標，並保留 63 天。
+ 63 天：期間為 300 秒 (5 分鐘） 的資料點會保留 63 天。63 天後，資料點會彙總為 1 小時期間指標，並保留 15 個月。
+ 15 個月：期間為 3，600 秒 (1 小時） 的資料點有效期為 15 個月 (455 天）。

如需詳細資訊，請參閱 CloudWatch 文件中的[指標](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_concepts.html#Metric)。

# CloudWatch 警示和儀表板
<a name="cloudwatch-dashboards"></a>

您可以使用 [Amazon CloudWatch 警示](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html)來監看一段時間內的特定 Amazon RDS 指標。例如，您可以監控 `FreeStorageSpace`，然後在指標的值超過您設定的閾值時執行一或多個動作。如果您將閾值設定為 250 MB，且可用儲存空間為 200 MB （小於閾值），則會啟動警示，並觸發 動作來自動為 Amazon RDS 資料庫執行個體佈建額外的儲存空間。警示也可以使用 Amazon Simple Notification Service (Amazon SNS) 將通知簡訊傳送至 DBA。下圖說明此程序。

![\[使用 CloudWatch 警示來監控 Amazon RDS 指標\]](http://docs.aws.amazon.com/zh_tw/prescriptive-guidance/latest/amazon-rds-monitoring-alerting/images/cloudwatch-alarms.png)


CloudWatch 也提供[儀表板](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Dashboards.html)，可用來建立、自訂、互動和儲存指標的自訂檢視 （圖）。您也可以使用 [CloudWatch Logs Insights](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AnalyzingLogData.html) 建立儀表板來監控慢查詢日誌和錯誤日誌，並在這些日誌中偵測到特定模式時接收提醒。下列畫面顯示 CloudWatch 儀表板範例。

![\[使用 CloudWatch 儀表板監控指標\]](http://docs.aws.amazon.com/zh_tw/prescriptive-guidance/latest/amazon-rds-monitoring-alerting/images/cloudwatch-dashboard.png)


# Amazon RDS Performance Insights
<a name="performance-insights-tools"></a>

[Amazon RDS Performance Insights](https://aws.amazon.com/rds/performance-insights/) 是一種資料庫效能調校和監控工具，可擴展 Amazon RDS 監控功能。它透過視覺化資料庫執行個體負載並依等待、SQL 陳述式、主機或使用者篩選負載，協助您分析資料庫的效能。此工具將多個指標合併為單一互動式圖形，可協助您識別資料庫執行個體可能遇到的瓶頸類型，例如鎖定等待、高 CPU 耗用或 I/O 延遲，並判斷哪些 SQL 陳述式正在建立瓶頸。下列畫面顯示視覺化範例。

![\[來自 Amazon RDS Performance Insights 的範例圖表\]](http://docs.aws.amazon.com/zh_tw/prescriptive-guidance/latest/amazon-rds-monitoring-alerting/images/performance-insights-example.png)


您必須在資料庫執行個體建立程序期間[啟用績效詳情](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.Enabling.html)，才能收集您帳戶中 Amazon RDS 資料庫執行個體的指標。免費方案包括七天的效能資料歷史記錄和每月一百萬個 API 請求。或者，您可以購買較長的保留期。如需有關費用的資訊，請參閱 [Performance Insights 定價](https://aws.amazon.com/rds/performance-insights/pricing/)。

如需有關如何使用績效詳情來監控資料庫執行個體的資訊，請參閱本指南稍後的[資料庫執行個體監控](db-instance-monitoring.md)一節。

Performance Insights [會自動將指標發佈至 CloudWatch](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.Cloudwatch.html)。除了使用績效詳情工具之外，您還可以利用 CloudWatch 提供的其他功能。您可以使用 CloudWatch 主控台、 AWS CLI或 CloudWatch API 來檢查績效詳情指標。您也可以新增 CloudWatch 警示，就像任何其他指標一樣。例如，您可能想要觸發向DBAs簡訊通知，或在`DBLoad`指標超過您設定的閾值時採取修正動作。您也可以將績效詳情指標新增至現有的 CloudWatch 儀表板。

# Enhanced Monitoring (增強型監控)
<a name="enhanced-monitoring"></a>

[增強型監控](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Monitoring.OS.overview.html)是一種工具，可即時擷取 Amazon RDS 資料庫執行個體執行所在的作業系統 (OS) 指標。這些指標可為 CPU、記憶體、Amazon RDS 和作業系統程序、檔案系統和磁碟 I/O 資料等提供高達一秒的精細程度。您可以在 [Amazon RDS 主控台](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Monitoring.OS.Viewing.html)中存取和分析這些指標。如同績效詳情，增強型監控指標會從 Amazon RDS 交付至 CloudWatch，您可以在其中受益於其他功能，例如長期保留用於分析的指標、建立指標篩選條件、在 CloudWatch 儀表板上顯示圖形，以及設定警示。根據預設，當您建立新的 Amazon RDS 資料庫執行個體時，會停用增強型監控。您可以在建立或修改資料庫執行個體時[啟用](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Monitoring.OS.Enabling.html)此功能。定價是根據從 Amazon RDS 傳輸到 CloudWatch Logs 的資料量，以及儲存費率。根據精細程度和啟用增強型監控的資料庫執行個體數量，CloudWatch Logs 免費方案中可以包含部分監控資料。如需完整的定價詳細資訊，請參閱 [Amazon CloudWatch 定價](https://aws.amazon.com/cloudwatch/pricing/)。如需工具的詳細資訊，請參閱 [Amazon RDS 文件](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Monitoring.OS.html)和[增強型監控](https://aws.amazon.com/rds/faqs/#Enhanced_Monitoring)常見問答集。

# AWS 其他服務
<a name="aws-monitoring-tools"></a>

AWS 提供數種支援服務，也與 Amazon RDS 和 CloudWatch 整合，進一步增強資料庫的可觀測性。其中包括 Amazon EventBridge、Amazon CloudWatch Logs 和 AWS CloudTrail。
+ [Amazon EventBridge](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-what-is.html) 是無伺服器事件匯流排，可接收、篩選、轉換、路由和交付來自您應用程式 AWS 和資源的事件，包括您的 Amazon RDS 資料庫執行個體。*Amazon RDS 事件*表示 Amazon RDS 環境中的變更。例如，當資料庫執行個體將其狀態從*可用*變更為*已停止*時，Amazon RDS 會產生事件 `RDS-EVENT-0087 / The DB instance has been stopped`。Amazon RDS 會以近乎即時的方式將事件交付至 CloudWatch Events 和 EventBridge。使用 EventBridge 和 CloudWatch Events，您可以定義規則，以針對特定感興趣的 Amazon RDS 事件傳送提醒，並自動執行事件符合規則時要採取的動作。有各種目標可用於回應事件，例如可執行修正動作的 AWS Lambda 函數，或可傳送電子郵件或簡訊以通知 DBAs 或 DevOps 工程師有關事件的 Amazon SNS 主題。
+ [Amazon CloudWatch Logs](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/WhatIsCloudWatchLogs.html) 是一項服務，可集中儲存所有應用程式、系統和 AWS 服務的日誌檔案，包括 Amazon RDS for MySQL 和 MariaDB 資料庫執行個體 和 AWS CloudTrail。如果您為資料庫執行個體[啟用](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_LogAccess.Concepts.MariaDB.html#USER_LogAccess.MariaDB.PublishtoCloudWatchLogs) 功能，Amazon RDS 會自動將下列日誌發佈至 CloudWatch Logs：
  + 錯誤日誌
  + 慢查詢日誌
  + 一般日誌
  + 稽核日誌

  您可以使用 CloudWatch Logs Insights 來查詢和分析日誌資料。該功能包含專用查詢語言，可協助您搜尋符合您定義的模式的日誌事件。例如，您可以透過監控以下模式的錯誤日誌檔案來追蹤 MySQL 資料庫執行個體中的資料表損毀：`"ERROR 1034 (HY000): Incorrect key file for table '*'; try to repair it OR Table * is marked as crashed"`。篩選的日誌資料可以轉換為 CloudWatch 指標。然後，您可以使用 指標建立具有圖形或表格資料的儀表板，或在違反定義的閾值時設定警示。這在使用稽核日誌時特別有用，因為您可以自動監控、傳送警示，並在偵測到任何非預期或可疑的行為時採取修正動作。您可以使用 AWS 管理主控台、 AWS CLI、Amazon RDS API 或適用於 CloudWatch Logs 的 AWS SDK 來存取和管理資料庫日誌。
+ [AWS CloudTrail](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-user-guide.html) 會記錄並持續監控 中的使用者和 API 活動 AWS 帳戶。它可協助您稽核、安全監控和操作故障診斷 Amazon RDS for MySQL 或 MariaDB 資料庫執行個體。CloudTrail 已與 Amazon RDS 整合。您可以記錄所有動作，CloudTrail 會提供 Amazon RDS 中使用者、角色 AWS 或服務所採取動作的記錄。例如，當使用者建立新的 Amazon RDS 資料庫執行個體時，會偵測到事件，而日誌包含有關請求的動作 (`"eventName": "CreateDBInstance"`)、動作的日期和時間 (`"eventTime": "2022-07-30T22:14:06Z"`)、請求參數 (`"requestParameters": {"dBInstanceIdentifier": "test-instance", "engine": "mysql", "dBInstanceClass": "db.m6g.large"}`) 等資訊。CloudTrail 記錄的事件包括來自 Amazon RDS 主控台的呼叫，以及來自使用 Amazon RDS API 之程式碼的呼叫。

# 第三方監控工具
<a name="third-party-monitoring-tools"></a>

在某些情況下，除了為 Amazon RDS AWS 提供的完整雲端原生可觀測性和監控工具套件之外，您可能還想要使用其他軟體供應商的監控工具。這類案例包括混合部署，您可以在內部部署資料中心中執行多個資料庫，以及在 中執行另一組資料庫 AWS 雲端。如果您已建立企業可觀測性解決方案，建議您繼續使用現有的工具，並將其擴展到您的 AWS 雲端 部署。設定第三方監控解決方案的挑戰通常在於 Amazon RDS 作為雲端受管服務實施的保護措施。例如，您無法在執行資料庫執行個體的主機作業系統上安裝代理程式軟體，因為對資料庫主機機器的存取遭拒。不過，您可以透過在 CloudWatch 和其他 AWS 雲端 服務上建置 ，將許多第三方監控解決方案與 Amazon RDS 整合。例如，Amazon RDS 指標、日誌、事件和追蹤可以匯出，然後匯入至第三方監控工具，以進行進一步分析、視覺化和提醒。其中一些第三方解決方案包括 Prometheus、Grafana 和 Percona。

## Prometheus 和 Grafana
<a name="prometheus-grafana"></a>

[Prometheus](https://prometheus.io/) 是一種[開放原始碼](https://github.com/prometheus/prometheus)監控解決方案，可依指定間隔從設定的目標收集指標。這是一般用途的監控解決方案，可監控任何應用程式或服務。當您監控 Amazon RDS 資料庫執行個體時，CloudWatch 會從 Amazon RDS 收集指標。接著會使用 YACE 匯出工具或 CloudWatch Exporter 等開放原始碼匯出工具，將指標匯出至 Prometheus 伺服器。
+ [YACE 匯出工具](https://promcat.io/apps/aws-rds)透過在對 CloudWatch API 的單一請求中擷取多個指標來最佳化資料匯出任務。在 Prometheus 伺服器上存放指標之後，伺服器會評估規則表達式，並在觀察到指定條件時產生警示。
+ [CloudWatch Exporter](https://github.com/prometheus/cloudwatch_exporter) 由 Prometheus 正式維護。它透過 CloudWatch API 擷取 CloudWatch 指標，並使用對 HTTP 端點的 REST API 請求，以與 Prometheus 相容的格式將其存放在 Prometheus 伺服器上。

當您選擇匯出工具、設計部署模型和設定匯出工具執行個體時，請考慮 [CloudWatch](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_limits.html) 和 [CloudWatch Logs](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/cloudwatch_limits_cwl.html) 服務和 API 配額，因為 CloudWatch 指標匯出至 Prometheus 伺服器是在 CloudWatch API 上實作。例如，在單一 AWS 帳戶 和區域中部署多個 CloudWatch Exporter 執行個體來監控數百個 Amazon RDS 資料庫執行個體可能會導致限流錯誤 (**ThrottlingException**) 和程式碼 400 錯誤。若要克服此類限制，請考慮使用 YACE 匯出工具，該匯出工具已最佳化，可在單一請求中收集多達 500 個不同的指標。此外，若要部署大量 Amazon RDS 資料庫執行個體，您應該考慮使用[多個 AWS 帳戶](https://docs.aws.amazon.com/whitepapers/latest/organizing-your-aws-environment/benefits-of-using-multiple-aws-accounts.html#distribute-aws-service-quotas-and-api-request-rate-limits) ，而不是將工作負載集中到單一 AWS 帳戶，並限制每個 中的匯出者執行個體數量 AWS 帳戶。

提醒是由 Prometheus 伺服器產生，並由 [Alertmanager](https://prometheus.io/docs/alerting/latest/alertmanager/) 處理。此工具負責將警示刪除、分組和路由至正確的接收者，例如電子郵件、簡訊或 Slack，或啟動自動回應動作。另一個名為 [Grafana](https://grafana.com/) [的開放原始碼](https://github.com/grafana/grafana)工具會顯示這些指標的視覺化效果。Grafana 提供豐富的視覺化小工具，例如進階圖形、動態儀表板和分析功能，例如臨機操作查詢和動態向下切入。它也可以搜尋和分析日誌，並包含提醒功能以持續評估指標和日誌，並在資料符合提醒規則時傳送通知。

![\[搭配 Amazon RDS 和 CloudWatch 使用 Prometheus 和 Grafana\]](http://docs.aws.amazon.com/zh_tw/prescriptive-guidance/latest/amazon-rds-monitoring-alerting/images/third-party-tools.png)


## Percona
<a name="percona"></a>

[Percona Monitoring and Management (PMM)](https://docs.percona.com/percona-monitoring-and-management/setting-up/client/aws.html) 是 MySQL 和 MariaDB 的免費[開放原始碼](https://github.com/percona/pmm)資料庫監控、管理和可觀測性解決方案。PMM 會從資料庫執行個體及其主機收集數千個效能指標。它提供 Web UI，以視覺化儀表板中的資料和其他功能，例如資料庫運作狀態評估的自動建議。您可以使用 PMM 來監控 Amazon RDS。不過，PMM 用戶端 （代理程式） 不會安裝在 Amazon RDS 資料庫執行個體的基礎主機上，因為它無法存取主機。反之，工具會連線至 Amazon RDS 資料庫執行個體、查詢伺服器統計資料、`INFORMATION_SCHEMA`、sys 結構描述和效能結構描述，並使用 CloudWatch API 來取得指標、日誌、事件和追蹤。PMM 需要 AWS Identity and Access Management (IAM) 使用者存取金鑰 (IAM 角色），並自動探索可用於監控的 Amazon RDS 資料庫執行個體。PMM 工具的設定檔用於資料庫監控，並收集比 Prometheus 更多的資料庫特定指標。若要使用 [PMM Query Analytics 儀表板](https://docs.percona.com/percona-monitoring-and-management/get-started/query-analytics.html)，您必須將效能結構描述設定為查詢來源，因為 Amazon RDS 未安裝 Query Analytics 代理程式，且無法讀取慢查詢日誌。相反`performance_schema`地，它會直接從 MySQL 和 MariaDB 資料庫執行個體查詢 以取得指標。PMM 的其中一個重要功能是[能夠提醒](https://docs.percona.com/percona-monitoring-and-management/get-started/alerting.html)和建議 DBAs 有關工具在其資料庫中識別的問題。PMM 提供一組檢查，可偵測常見的安全威脅、效能降低、資料遺失和資料損毀。

除了這些工具之外，市場上還提供多種商業可觀測性和監控解決方案，可與 Amazon RDS 整合。範例包括 [Datadog 資料庫監控](https://www.datadoghq.com/dg/monitor/rds-benefits/)、[Dynatrace Amazon RDS 監控](https://www.dynatrace.com/technologies/aws-monitoring/amazon-rds-monitoring/)和 [AppDynamics 資料庫監控](https://www.appdynamics.com/supported-technologies/database/amazon-rds-monitoring)。