

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

# 第三方監控工具
<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)。