Azure Database for MySQL - フレキシブル サーバー (プレビュー) のエラー ログ
適用対象: Azure Database for MySQL - フレキシブル サーバー
Azure Database for MySQL - フレキシブル サーバーでは、ユーザーはエラー ログを構成してアクセスできます。 MySQL のエラー ログは、サーバーの起動とシャットダウン中に診断メッセージを収集し、サーバーの実行中に、プロアクティブなトラブルシューティングに役立つ情報を収集します。 MySQL エラー ログの詳細については、MySQL ドキュメントの「「エラー ログ」セクションを参照してください。 プレビュー フェーズでは、エラー ログはサーバー ログでのみ使用できます。エラー ログ を Azure 診断ログに出力することはできません。
Azure Database for MySQL - フレキシブル サーバーで、Azure portal の [サーバー ログ] でエラー ログを有効にすると、構文 mysql-error-servername-timestamp.log を使用して名前が付けられた複数のファイルに詳細が記録されます。 ファイル名には、ファイルの生成時に関連付けられた timestamp (GMT/UTC) が追加され、ログ エントリが記録された特定の時刻が識別されます。 詳細については、「サーバー ログのリテンション期間」を参照してください。
エラー ログの有効化 (プレビュー)
ユーザーは、Azure portal または Azure CLI を使用して有効にできるサーバー ログ機能を使用して、Azure Database for MySQL - フレキシブル サーバーのエラー ログにアクセスして構成できます。 この機能が有効になった後、MySQL フレキシブル サーバーはイベントのキャプチャを開始し、アクティビティが発生したときに保存された一連のファイルに書き込みます。
エラー ログを有効にするには、次の手順を実行します。
Azure portal でフレキシブル サーバーに移動し、[監視] で [サーバー ログ] を選択します。
[サーバー ログ] で、[有効化] チェック ボックスをオンにします。これにより、サーバー ログ機能が有効になります
[有効にするログの選択] で、[エラー ログ] チェック ボックスをオンにします。
[保存] を選択してデプロイを続行します。
また、Azure Database for MySQL フレキシブル サーバーでエラー ログを有効にするには、[サーバー パラメーター] ウィンドウまたは Azure CLI を使用して、"error_server_log_file" という名前のサーバー パラメーターを有効にします。
[サーバー ログ] ウィンドウで [有効] チェック ボックスをオンにして、サーバー ログ機能がアクティブになっていることを確認します。 または、サーバー パラメーター "log_output" を FILE に設定して、サーバー ログを有効にします。 これらのアクションのいずれかを実行しないと、Azure Database for MySQL フレキシブル サーバーに対して FILE ログが有効になりません。
エラー ログへのアクセス
エラー ログをダウンロードして、Azure Database for MySQL フレキシブル サーバーの詳細な分析を行うことができます。 ログをダウンロードするには、Azure portal で [サーバー ログ] セクションに移動し、次に示すように [エラー ログ] タブを選択します。
[名前] で、ダウンロードするログ ファイルを選択し、[アクション] で[ダウンロード] を選択します。
一度に複数のログ ファイルをダウンロードするには、[名前] の下にあるダウンロードするファイルを選択し、[ダウンロード] を選択します。
Azure CLI を使用してエラー ログにアクセスする
次のコマンドを使用して、フレキシブル サーバーのサーバー ログをリスト表示できます。
az mysql flexible-server server-logs list --resource-group <myresourcegroup> --server-name <server_name> --out table
前述のサーバー ログを現在のディレクトリにダウンロードするには、次のコマンドを使用します:
az mysql flexible-server server-logs download --resource-group <myresourcegroup> --server-name <server_name> --name <mysql-error-<server_name>-<timestamp>.log>
詳細については、Azure portal または Azure CLI を使ってサーバー ログ ファイルをダウンロードする方法を参照してください。
サーバー ログの保持に関するエラー ログ
Azure Database for MySQL - フレキシブル サーバーのログ記録が有効な場合、ログは作成から最長 7 日間使用できます。 使用可能なログの合計サイズが 7 GB を超える場合は、空き領域を利用できるようになるまで、古いファイルから削除されます。 サーバー ログの 7 GB のストレージ上限は、コストなしで使用可能であり、拡張することはできません。 ログのローテーションは、24 時間ごとか 500 MB ごとのどちらか早い方のタイミングで行われます。 重要なのは、ローテーションの前にログをダウンロードして、リテンション期間内の任意の時点で重要なサーバー ログにアクセスできるようにすることです。 さまざまな種類のログのログローテーションスケジュールとストレージ制限の詳細については、サーバー ログ リテンション期間に関するドキュメントを参照してください。
個人情報 (PII) と機密データの取り扱い
Azure MySQL フレキシブル サーバーでは、データのセキュリティに優先順位を付けます。 そのため、セキュリティ上の理由により、個人を特定できる情報 (PII) や、ホスト名、IP アドレス、ユーザー名、データベース名などの機密データがエラー ログにハッシュされます。 つまり、エラー ログからサーバーの運用状態と潜在的な問題に関する分析情報を得ることができますが、サーバーのセキュリティを侵害する可能性がある特定の詳細には直接アクセスできません。 ただし、ユーザー名が通常印刷される "アクセス拒否" エラーなど、エラーに関する詳細情報が必要な場合は、Azure MySQL フレキシブル サーバーの監査ログでこの情報を確認できます。 監査ログでは、サーバー上のアクティビティとトランザクションをより詳細に表示できるため、問題のトラブルシューティングと解決をより効果的に行うことができます。
監査ログにアクセスして解釈する方法の詳細については、公式ドキュメントを参照してください。
よく寄せられる質問
質問: 次に示すようにエラー ログにメモが含まれています。これはどういう意味ですか?
[Note] [Server] Access denied for user ''@'xx.xx.xx.X' (using password: NO).
回答: このメモは、認証の詳細が正しくないか不足しているため、MySQL サーバーへの接続が失敗したことを示しています。 具体的には、指定されたユーザー名は empty(''@'xx.xx.xx.X') で、パスワードは入力されていません (パスワード: NO を使用)。 このメモは、データベースへの未承認のアクセス試行を示している可能性があります。 サーバーがパブリックにアクセス可能な場合、サーバーはインターネットに公開されたままであり、未承認のアクセス試行のターゲットになる可能性があります。 Azure Database for MySQL フレキシブル サーバーのセキュリティを強化するには、パブリック アクセスを無効にするか、ファイアウォール規則を使用してアクセスを制限します。