
実稼働および UAT RDS データベースで AWS RDS 拡張モニタリングを有効にしました。これらは ERP インスタンスに接続されています。
ユーザーの問題をデバッグ中に遅いクエリを探しに行ったところ、監査、一般、およびスロークエリのログが消えました。
これらは有効になっていて、現在も有効になっています。以前は CloudWatch にありました。1 年以上の保存期間があるにもかかわらず、1 つも残っていません。
コントロールパネルから「公開されたログ」のハイパーリンクをクリックすると、CloudWatchは次のように言います。
There was an error filtering log events
The specified log group does not exist
エラー ログは存在し、ログ記録エラーは表示されません。
他のログをオフにして、設定をそのままにして、その後オンにしてみました。他のログ (遅い SQL など) はまだ存在しません。
運用環境のこれらのログはビジネス上重要です。つまり、監査ログが突然消えてしまったら、アラートを作成するのは難しいですよね? これらのログが消えたことに関するエラーすら発生していないなんて信じられません。
「拡張モニタリング」がオフになっていることがわかったので、オンにしたところ、次のようになりました。
Amazon RDS はインスタンス uat で拡張モニタリングを設定できず、この機能は無効になっています。これは、rds-monitoring-role がアカウントに存在せず、正しく設定されていないことが原因である可能性があります。詳細については、Amazon RDS ドキュメントのトラブルシューティング セクションを参照してください。
この役割は存在しており、2019 年から変更されていません。
rds-monitoring-role、信頼関係:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "",
"Effect": "Allow",
"Principal": {
"Service": "monitoring.rds.amazonaws.com"
},
"Action": "sts:AssumeRole"
}
]
}
もう 1 つ: 約 2 週間前に DataDog の AWS 統合 CloudWatch ルーチンをインストールしました。ログがすべて消えたのはだいたいその頃だったかもしれませんが、それは偶然だと思います。そうでなければ、彼らにチケットをオープンします。彼らの CloudWatch スタックを削除しましたが、ログは戻ってきませんでした。
この質問ログパラメータについて言及していますが、確認したところ変更されていません。
答え1
監査、エラー、一般、および低速クエリをログに記録するように Amazon RDS インスタンスを設定しました。これらのログは RDS 構成で表示されていましたが、CloudWatch をチェックしたときにエラーが発生しました。
この問題を解決するために、RDS サービスの推奨事項に従い、log_output パラメータを FILE に変更しました。この調整を行った後、Slow query ログが CloudWatch に表示されるようになりました。さらに、すべてのクエリをキャプチャするために long_query_time を 0 に設定し、slow_query_log を 1 に設定していた可能性があります。