Azure Database for MySQL - フレキシブル サーバーを監視する
適用対象: Azure Database for MySQL - フレキシブル サーバー
Azure Database for MySQL フレキシブル サーバーでは、Azure Monitor を通してサーバーを監視できます。 サーバーに関する監視データは、ワークロードをトラブルシューティングしたり最適化したりするのに役立ちます。
この記事では、サーバーの動作に関する情報の分析に使用できるさまざまなメトリックとフレキシブル サーバーのサーバー ログについて説明します。
Note
この記事には、Microsoft が使用しなくなった "スレーブ" という用語への言及が含まれています。 ソフトウェアからこの用語が削除された時点で、この記事から削除します。
メトリック
メトリックは、サーバーのリソースの特定の時点における何らかの側面を表す数値です。 サーバーのリソースを監視すると、ユーザーにとって最も重要なものを監視できるため、ワークロードのトラブルシューティングと最適化に役立ちます。 適切なメトリックを監視すると、サーバーとアプリケーションのパフォーマンス、信頼性、可用性を維持するのに役立ちます。
Azure Database for MySQL フレキシブル サーバーには、ワークロードがどのように実行されているかを把握し、そのデータに基づいてサーバーとアプリケーションへの影響を理解するための、さまざまなメトリックが用意されています。
すべての Azure メトリックは 1 分間隔で、各メトリックの 30 日間の履歴が保持されます。 メトリックにアラートを構成できます。 詳細な手順については、アラートの設定方法に関する記事をご覧ください。 その他のタスクとして、自動化されたアクションの設定、高度な分析の実行、履歴のアーカイブなどがあります。 詳細については、Azure のメトリックの概要に関する記事をご覧ください。
トラブルシューティング メトリック
場合によっては、Azure メトリックス エクスプローラーでのグラフの作成、カスタマイズ、または解釈に関する問題が発生することがあります。 さまざまな要因が原因でデータが発生しなかったグラフの状況。 これには、サブスクリプションに登録されていない Microsoft Insights リソース プロバイダーや、Azure Database for MySQL - フレキシブル サーバーへの適切なアクセス権がない場合が含まれます。 その他の可能性としては、選択した期間内にリソースがメトリックを生成しなかったか、選択した時間範囲が 30 日を超えている可能性があります。
この動作は、次のようないくつかの理由で発生する可能性があります:
- Microsoft.Insights リソース プロバイダーが登録されていない: メトリックを探索するには、サブスクリプションに登録されている Microsoft.Insights リソース プロバイダーが必要です。 「Azure リソース プロバイダーと種類」で説明されている手順に従って、サーバーを手動で登録します。
- リソースへのアクセス権が不十分: メトリックを探索する Azure Database for MySQL - フレキシブル サーバーに対する十分なアクセス許可があることを確認します。 選択した時間範囲でリソースからメトリックが出力されませんでした: グラフの時間をより広い範囲に変更してください。 Azure で、Azure ロールベースのアクセス制御 (Azure RBAC) を使用して、メトリックへのアクセスを管理します。 リソースのメトリックを調べるには、監視閲覧者、監視共同作成者、または共同作成者のメンバーである必要があります。
- 選択した時間範囲でリソースがメトリックを出力しませんでした: これは、いくつかの理由が原因である可能性があります。 1 つの可能性は、選択した期間内にリソースによってメトリックが生成されなかった場合です。 グラフの時間をより広い範囲に変更して、これが問題を解決するかどうかを確認してください。 この問題のトラブルシューティングの詳細については、Azure Monitor メトリックの「トラブルシューティング ガイド」を参照してください。
- 時間範囲が 30 日を超えています: タイム ピッカーの開始日と終了日の差が 30 日の間隔を超えていないことを確認します。 トラブルシューティング メトリックの詳細については、「Azure Monitor メトリックのトラブルシューティング ガイド」を参照してください。
- 破線表示: Azure Monitor では、破線が存在すると、既知の時間粒度データの 2 つのポイント間のデータのギャップまたは "null 値" が示されます。 これは、不足しているデータ ポイントの検出に役立つ意図的な設計です。 グラフに破線が表示されている場合は、データが不足していることが示され、詳細についてはドキュメントを参照してください。
トラブルシューティング メトリックの詳細については、「Azure Monitor メトリックのトラブルシューティング ガイド」を参照してください。
Note
非推奨としてマークされているメトリックは、Azure portal から削除されるようスケジュールされています。 Azure Database for MySQL フレキシブル サーバーを監視するには、これらのメトリックを無視することをお勧めします。
メトリックの一覧
以下のメトリックが Azure Database for MySQL フレキシブル サーバーに使用できます:
メトリックの表示名 | メトリック | ユニット | 説明 |
---|---|---|---|
MySQL アップタイム | uptime | 秒 | このメトリックは、MySQL サーバーが実行されている時間の長さを示します。 |
ホストの CPU 使用率 | cpu_percent | Percent | ホストの CPU 使用率は、選択した期間にサーバー上のすべてのタスクを処理するための CPU の合計使用率です。 このメトリックには、Azure Database for MySQL - フレキシブル サーバー インスタンスと Azure MySQL プロセスのワークロードが含まれます。 CPU 使用率が高い状態は、データベース サーバーに処理能力を超えるワークロードがあるかどうかを確認するのに役立ちます。 このメトリックは、仮想マシン上の CPU 使用率のような、合計 CPU 使用率に相当します。 |
使用された CPU クレジット | cpu_credits_consumed | カウント | これはバースト可能なレベル専用です CPU クレジットは、ワークロードに基づいて計算されます。 詳しくは、「負荷の急増に対応できる B シリーズ仮想マシンのサイズ」をご覧ください。 |
残りの CPU クレジット | cpu_credits_remaining | カウント | これはバースト可能なレベル専用です 残りの CPU は、ワークロードに基づいて計算されます。 詳しくは、「負荷の急増に対応できる B シリーズ仮想マシンのサイズ」をご覧ください。 |
ホストのネットワーク受信 | network_bytes_ingress | バイト | 選択した期間のサーバー上の受信ネットワーク トラフィックの合計。 このメトリックには、データベースと Azure Database for MySQL フレキシブル サーバー機能 (監視、ログなど) へのトラフィックが含まれます。 |
ホストのネットワーク送信 | network_bytes_egress | バイト | 選択した期間のサーバー上の送信ネットワーク トラフィックの合計。 このメトリックには、データベースからのトラフィックと、監視、ログなどの Azure Database for MySQL フレキシブル サーバー機能からのトラフィックが含まれます。 |
アクティブな接続 | active_connection | Count | サーバーへのアクティブな接続の数 アクティブな接続は、サーバーに接続されているスレッドの合計数です。azure_superuser からのスレッドも含まれます。 |
Storage IO percent (ストレージ IO の割合) | io_consumption_percent | Percent | 選択した期間に使用されている IO の割合。 IO の割合は、読み取りと書き込みの両方の IOPS が対象です。 |
Storage IO Count (ストレージ IO 数) | storage_io_countstorage_io_count | Count | サーバーが 1 分あたりに使用する I/O 操作 (読み取りと書き込みの両方) の合計数。 |
メモリの割合 | memory_percent | Percent | このメトリックは、Azure MySQL (mysqld) サーバー プロセスによって占有されているメモリの割合を表します。 このメトリックは、Azure Database for MySQL フレキシブル サーバーで使用可能な合計メモリ サイズ (GB) から計算されます。 |
合計接続数 | total_connections | カウント | Azure Database for MySQL - フレキシブル サーバー インスタンスへのクライアント接続の数。 合計接続数は、選択した期間の TCP/IP プロトコルを使用したクライアント別の接続数の合計です。 |
中止された接続 | aborted_connections | カウント | 資格情報が正しくないために失敗した接続など、Azure Database for MySQL フレキシブル サーバー インスタンスへの接続に失敗した試行の合計数。 中止された接続の詳細については、このドキュメントを参照してください。 |
クエリ | Query | Count | サーバーで 1 分間に実行されたクエリの合計数。 データベース ワークロードと Azure MySQL プロセスからの、サーバー上の 1 分間のクエリの合計数です。 |
Slow_queries | slow_queries | Count | 選択した時間範囲内のサーバーでの低速クエリの合計数。 |
Active Transactions | active_transactions | カウント | このメトリックは、MySQL 内で現在実行されているトランザクションの合計数を表します。 アクティブなトランザクションには、開始されたが、まだコミットまたはロールバックされていないすべてのトランザクションが含まれます。 |
ストレージの内訳メトリック
メトリックの表示名 | メトリック | ユニット | 説明 |
---|---|---|---|
ストレージの制限 | storage_limit | バイト | このサーバー用に構成された最大ストレージ サイズ。 |
ストレージの割合 | storage_percent | パーセント | サーバーの上限のうち、使用済みのストレージの割合。 |
使用されているストレージ | storage_used | バイト | 使用されているストレージの量。 サービスで使用されるストレージには、データベース ファイル、トランザクション ログ、サーバー ログが含まれることがあります。 |
使用されているデータ ストレージ | data_storage_used | バイト | データベース ファイルの格納に使用されているストレージの量。 |
ibdata1 Storage Used | ibdata1_storage_used | バイト | システム テーブルスペース (ibdata1) ファイルの格納に使用されているストレージの量。 |
Binlog Storage Used | binlog_storage_used | バイト | バイナリ ログ ファイルの格納に使用されているストレージの量。 |
使用されているその他のストレージ | other_storage_used | バイト | 他のコンポーネントとメタデータ ファイルに使用されているストレージの量。 |
使用済みバックアップ ストレージ | backup_storage_used | バイト | 使用されているバックアップ ストレージの量。 |
レプリケーションのメトリック
メトリックの表示名 | メトリック | ユニット | 説明 |
---|---|---|---|
レプリケーションのラグ | replication_lag | Seconds | レプリケーションのラグは、レプリカでソース サーバーから受信したトランザクションの再生が遅延している秒数です。 このメトリックは、"SHOW SLAVE STATUS" コマンドの "Seconds_behind_Master" から計算され、レプリカ サーバーでのみ使用できます。 詳細については、「レプリケーション待機時間の監視」を参照してください。 |
レプリカ IO の状態 | replica_io_running | State | レプリカ IO の状態は、レプリケーション I/O スレッドの状態を示します。 メトリック値は、I/O スレッドが実行されている場合は 1、実行されていない場合は 0 です。 |
レプリカ SQL の状態 | replica_sql_running | State | レプリカ SQL の状態は、レプリケーション SQL スレッドの状態を示します。 メトリック値は、SQL スレッドが実行されている場合は 1、実行されていない場合は 0 です。 |
HA IO の状態 | ha_io_running | State | HA IO の状態は、HA レプリケーションの状態を示します。 メトリック値は、I/O スレッドが実行されている場合は 1、実行されていない場合は 0 です。 |
HA SQL の状態 | ha_sql_running | State | HA SQL の状態は、HA レプリケーションの状態を示します。 メトリック値は、SQL スレッドが実行されている場合は 1、実行されていない場合は 0 です。 |
HA Replication Lag (HA レプリケーションのラグ) | ha_replication_lag | 秒 | HA レプリケーションのラグは、HA スタンバイ サーバーでソース サーバーから受信したトランザクションの再生が遅延している秒数です。 このメトリックは、"SHOW SLAVE STATUS" コマンドの "Seconds_behind_Master" から計算され、HA スタンバイ サーバーでのみ使用できます。 |
Note
Azure Database for MySQL - フレキシブル サーバーの読み取りレプリカの場合、MySQL コマンド "SHOW SLAVE STATUS" からの Slave_IO_Running または "SHOW REPLICA STATUS" からの Replica_IO_Running の値は "NO" と表示され、無視する必要があります。これは、Azure Database for MtSQL フレキシブル サーバーのレプリカの実装はソース サーバーと通信するための接続の確立に依存しないためです。 読み取りレプリカの I/O スレッドの正規状態については、[監視] ブレードの [メトリック] の [Replica IO Status] (レプリカ IO の状態) を参照してください。
拡張メトリック
DML 統計
メトリックの表示名 | メトリック | ユニット | 説明 |
---|---|---|---|
Com_select | Com_select | Count | 選択した時間範囲内にサーバーで実行された SELECT ステートメントの合計数。 |
Com_update | Com_update | Count | 選択した時間範囲内にサーバーで実行された UPDATE ステートメントの合計数。 |
Com_insert | Com_insert | Count | 選択した時間範囲内にサーバーで実行された INSERT ステートメントの合計数。 |
Com_delete | Com_delete | Count | 選択した時間範囲内にサーバーで実行された DELETE ステートメントの合計数。 |
DDL 統計
メトリックの表示名 | メトリック | ユニット | 説明 |
---|---|---|---|
Com_create_db | Com_create_db | Count | 選択した時間範囲内にサーバーで実行された CREATE DATABASE ステートメントの合計数。 |
Com_drop_db | Com_drop_db | Count | 選択した時間範囲内にサーバーで実行された DROP DATABASE ステートメントの合計数。 |
Com_create_table | Com_create_table | Count | 選択した時間範囲内にサーバーで実行された CREATE TABLE ステートメントの合計数。 |
Com_drop_table | Com_drop_table | Count | 選択した時間範囲内にサーバーで実行された DROP TABLE ステートメントの合計数。 |
Com_Alter | Com_Alter | Count | 選択した時間範囲内にサーバーで実行された ALTER TABLE ステートメントの合計数。 |
InnoDB メトリック
メトリックの表示名 | メトリック | ユニット | 説明 |
---|---|---|---|
InnoDB 行ロック時間 | innodb_row_lock_time | Milliseconds | InnoDB 行ロック時間は、InnoDB 行レベルのロックの時間をミリ秒単位で測定します。 |
InnoDB 行ロック待機 | innodb_row_lock_waits | カウント | InnoDB 行ロック待機メトリックは、クエリが InnoDB 行レベルのロックを待機する必要があった回数をカウントします。 |
Innodb_buffer_pool_reads | Innodb_buffer_pool_reads | Count | InnoDB エンジンが InnoDB バッファー プールから満たすことができず、ディスクから取り込む必要があった論理読み取りの合計数。 |
Innodb_buffer_pool_read_requests | Innodb_buffer_pool_read_requests | Count | InnoDB バッファー プールから読み取る論理読み取り要求の合計数。 |
Innodb_buffer_pool_pages_free | Innodb_buffer_pool_pages_free | Count | InnoDB バッファー プール内の空きページの合計数。 |
Innodb_buffer_pool_pages_data | Innodb_buffer_pool_pages_data | Count | InnoDB バッファー プール内のデータを含むページの合計数。 この数字には、ダーティとクリーンの両ページが含まれます。 |
Innodb_buffer_pool_pages_dirty | Innodb_buffer_pool_pages_dirty | Count | InnoDB バッファー プール内のダーティ ページを含むページの合計数。 |
MySQL 履歴リストの長さ | trx_rseg_history_len | カウント | このメトリックは、データベース内の変更の回数、特に以前の変更を含むレコードの数を計算します。 これは、新しい行バージョンが作成される原因となるデータの変化率に関連しています。 履歴リストが長くなると、データベースのパフォーマンスに影響する可能性があります。 |
MySQL のロック タイムアウト | lock_timeouts | カウント | このメトリックは、ロックが原因でクエリがタイムアウトした回数を表します。 これは通常、別のクエリによって保持されている行またはテーブルのロックが、innodb_lock_wait_timeout 設定よりも長い時間待機している場合に発生します。 |
MySQL のロックのデッドロック | lock_deadlock | カウント | このメトリックは、選択した期間に Azure Database for MySQL フレキシブル サーバー インスタンスで発生したデッドロックの回数を表します。 |
サーバー ログ
Azure Database for MySQL - フレキシブル サーバーでは、ユーザーはサーバー ログを構成し、ダウンロードして、トラブルシューティング作業に役立てることができます。 この機能を有効にすると、Azure Database for MySQL フレキシブル サーバー インスタンスは、選択したログの種類のイベントのキャプチャを開始し、ファイルに書き込みます。 これにより、ユーザーは Azure portal と Azure CLI を使ってファイルをダウンロードし、それらを操作できるようになります。 サーバー ログ機能は、既定では無効です。 サーバー ログを有効にする方法については、「Azure Database for MySQL - フレキシブル サーバーのサーバー ログの有効化とダウンロード」を参照してください。
サーバー ログでは、有効にしてダウンロードするための低速クエリ ログとエラー ログがサポートされます。 データの履歴分析を行うには、Azure portal のサーバーの [診断] 設定ペインでログを Log Analytics ワークスペース、Azure Storage、またはイベント ハブに送信する診断設定を追加します。 詳細については、診断の設定に関する記事を参照してください。
サーバー ログのリテンション期間
Azure Database for MySQL - フレキシブル サーバー インスタンスのログ記録が有効な場合、ログは作成から最長 7 日間使用できます。 使用可能なログの合計サイズが 7 GB を超える場合は、空き領域を利用できるようになるまで、古いファイルから削除されます。 サーバー ログの 7 GB のストレージ上限は、コストなしで使用可能であり、拡張することはできません。 ログのローテーションは、24 時間ごとか 500 MB ごとのどちらか早い方のタイミングで行われます。
次のステップ
- メトリックに対するアラートの作成のガイダンスについては、アラートを設定する方法に関するページをご覧ください。
- Azure portal または Azure CLI から Azure Database for MySQL - フレキシブル サーバーのサーバー ログを有効にしてダウンロードする方法