翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
データベースログ
MySQL および MariaDB データベースでは、監査やトラブルシューティングのためにアクセスできるログが生成されます。これらのログを次にしめします。
-
監査
– 監査証跡は、サーバーのアクティビティが記録されている一連のレコードです。これには、クライアントセッションごとに、サーバーに接続したユーザー (ユーザー名とホスト)、実行したクエリ、アクセスしたテーブル、変更したサーバー変数が記録されます。 -
エラー
– このログには、サーバー ( mysqld) の起動およびシャットダウン時刻に加え、サーバーの起動、シャットダウン、稼働時に発生したエラー、警告、通知といった診断メッセージが記録されます。 -
全般
– このログには、 mysqldのアクティビティ (各クライアントの接続および切断アクティビティ、クライアントから受信した SQL クエリなど) が記録されます。全般のクエリログは、エラーが疑われる場合や、クライアントがmysqldに送信した内容を正確に把握する場合に非常に有用です。 -
スロークエリ
– このログには、実行に長い時間がかかった SQL クエリが記録されます。
ベストプラクティスを実行するには、Amazon RDS から Amazon CloudWatch Logs にデータベースログを発行する必要があります。CloudWatch Logs を使用すると、ログデータのリアルタイム分析、耐久性に優れたストレージへのデータ保存、CloudWatch Logs エージェントによるデータ管理を行えます。データベースログは、Amazon RDS コンソールからアクセスして監視できます。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 クエリの例は、rdsadmin が localhost から 5 分おきにデータベースに接続していることを示しており、次の図を見ると、それが合計 22 回発生していることがわかります。これらの結果によると、このアクティビティは、モニタリングシステムといった内部の Amazon RDS プロセス自体によって生じています。
ログイベントには、MySQL および MariaDB DB インスタンス関連オペレーションで生じる警告やエラーといった、カウント対象となる重要なメッセージが頻繁に出力されます。例えば、操作が失敗した場合、次のエラーが発生し、エラーログファイルに記録される場合があります: ERROR 1114 (HY000): The table zip_codes is full。エラー傾向を把握するために、これらのログのモニタリングをお勧めします。Amazon RDS ログからカスタム CloudWatch メトリクスを作成するには、フィルターを使用して Amazon RDS データベースログの自動モニタリングを有効にします。次に、特定のログで特定のパターンをモニタリングし、想定動作に違反する挙動があった場合にアラームを生成するよう設定します。例えば、ロググループ /aws/rds/instance/database-1/error にメトリクスフィルターを作成し、これによって、エラーログをモニタリングし、ERROR のような特定のパターンを検索します。フィルターパターンを ERROR に、メトリクス値を 1 に設定します。このフィルターによって、キーワード ERROR が含まれるログレコードをすべて検出し「ERROR」のあるログイベントごとにカウントを 1 増やします。フィルターを作成したら、MySQL または MariaDB エラーログでエラーが検出された際にその旨を通知させるアラームを設定できます。
CloudWatch ダッシュボードの作成と CloudWatch Logs Insights の使用によるスロークエリログおよびエラーログモニタリングの詳細については、ブログ記事「Creating an Amazon CloudWatch dashboard to monitor Amazon RDS and Amazon Aurora MySQL