

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

# 資料庫日誌
<a name="database-logs"></a>

MySQL 和 MariaDB 資料庫會產生您可以存取的日誌，以進行稽核和故障診斷。這些日誌包括：
+ [稽核](https://mariadb.com/kb/en/mariadb-audit-plugin-log-format/) – 稽核線索是一組記錄伺服器活動的記錄。對於每個用戶端工作階段，它會記錄連線至伺服器的人員 （使用者名稱和主機）、執行的查詢、存取的資料表，以及變更的伺服器變數。
+ [錯誤](https://dev.mysql.com/doc/refman/8.0/en/error-log.html) – 此日誌包含伺服器的 (`mysqld`) 啟動和關閉時間，以及診斷訊息，例如在伺服器啟動和關閉期間，以及伺服器執行期間的錯誤、警告和備註。
+ [一般](https://dev.mysql.com/doc/refman/8.0/en/query-log.html) – 此日誌會記錄 的活動`mysqld`，包括每個用戶端的連線和中斷連線活動，以及從用戶端收到的 SQL 查詢。當您懷疑發生錯誤並想知道用戶端傳送至 的內容時，一般查詢日誌非常有用`mysqld`。
+ [慢查詢](https://dev.mysql.com/doc/refman/8.0/en/slow-query-log.html) – 此日誌提供 SQL 查詢的記錄，這些查詢需要很長時間才能執行。

最佳實務是，您應該將[資料庫日誌從 Amazon RDS 發佈至 Amazon CloudWatch Logs](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_LogAccess.Procedural.UploadtoCloudWatch.html)。使用 CloudWatch Logs，您可以執行日誌資料的即時分析、將資料存放在高耐用性的儲存體中，以及使用 CloudWatch Logs 代理程式管理資料。您可以從 Amazon RDS 主控台[存取和監看資料庫日誌](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_LogAccess.Procedural.Watching.html)。您也可以使用 CloudWatch Logs Insights 以互動方式搜尋和分析 CloudWatch Logs 中的日誌資料。下列範例說明稽核日誌上的查詢，該查詢會檢查`CONNECT`事件在日誌中出現的次數、連接的對象，以及它們連線的用戶端 (IP 地址）。稽核日誌中的摘錄可能如下所示：

```
20221201 14:07:05,ip-10-22-1-51,rdsadmin,localhost,821,0,CONNECT,,,0,SOCKET
20221201 14:07:05,ip-10-22-1-51,rdsadmin,localhost,821,0,DISCONNECT,,,0,SOCKET
20221201 14:12:20,ip-10-22-1-51,rdsadmin,localhost,822,0,CONNECT,,,0,SOCKET
20221201 14:12:20,ip-10-22-1-51,rdsadmin,localhost,822,0,DISCONNECT,,,0,SOCKET
20221201 14:17:35,ip-10-22-1-51,rdsadmin,localhost,823,0,CONNECT,,,0,SOCKET
20221201 14:17:35,ip-10-22-1-51,rdsadmin,localhost,823,0,DISCONNECT,,,0,SOCKET
20221201 14:22:50,ip-10-22-1-51,rdsadmin,localhost,824,0,CONNECT,,,0,SOCKET
20221201 14:22:50,ip-10-22-1-51,rdsadmin,localhost,824,0,DISCONNECT,,,0,SOCKET
```

Log Insights 查詢範例顯示`localhost`每 5 分鐘`rdsadmin`連線至資料庫一次，總共 22 次，如下圖所示。這些結果表示活動源自內部 Amazon RDS 程序，例如監控系統本身。

![\[Log Insights 報告\]](http://docs.aws.amazon.com/zh_tw/prescriptive-guidance/latest/amazon-rds-monitoring-alerting/images/log-insights.png)


日誌事件經常包含您要計數的重要訊息，例如有關與 MySQL 和 MariaDB 資料庫執行個體相關聯操作的警告或錯誤。例如，如果 操作失敗，可能會發生錯誤，並會記錄到錯誤日誌檔案中，如下所示：`ERROR 1114 (HY000): The table zip_codes is full`。您可能想要監控這些項目，以了解您錯誤的趨勢。您可以使用[篩選條件從 Amazon RDS 日誌建立自訂 CloudWatch 指標](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CreateMetricFilterProcedure.html)，以啟用 Amazon RDS 資料庫日誌的自動監控，以監控特定模式的特定日誌，並在違反預期行為時產生警示。[例如](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CountOccurrencesExample.html)，為日誌群組建立指標篩選條件`/aws/rds/instance/database-1/error`，以監控錯誤日誌並搜尋[特定模式](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/FilterAndPatternSyntax.html)，例如 `ERROR`。將**篩選條件模式**設定為 `ERROR`，並將**指標值**設定為 `1`。篩選條件會偵測具有關鍵字 的每個日誌記錄`ERROR`，並為每個包含 "ERROR" 的日誌事件將計數增加 1。建立篩選條件後，您可以設定警示，在 MySQL 或 MariaDB 錯誤日誌中偵測到錯誤時通知您。

若要進一步了解如何透過建立 CloudWatch 儀表板和使用 CloudWatch Logs Insights 來監控慢查詢日誌和錯誤日誌，請參閱部落格文章[建立 Amazon CloudWatch 儀表板以監控 Amazon RDS 和 Amazon Aurora MySQL。](https://aws.amazon.com/blogs/database/creating-an-amazon-cloudwatch-dashboard-to-monitor-amazon-rds-and-amazon-aurora-mysql/)