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 メトリックのトラブルシューティング ガイド」を参照してください。

メトリックの一覧

以下のメトリックが Azure Database for 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 プロセスの両方からのメモリ使用率を含む)。 このメトリックは、バッファーやキャッシュなどの再利用可能なメモリを除き、サーバーのメモリ使用率を評価します。
使用可なメモリ (バイト単位) available_memory_bytes バイト このメトリックは、サーバーで現在使用できるメモリの量を表します。
合計接続数 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 選択した時間範囲内のサーバーでの低速クエリの合計数。

ストレージの内訳メトリック

メトリックの表示名 メトリック ユニット 説明
ストレージの制限 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 バッファー プール内のダーティ ページを含むページの合計数。

サーバー ログ

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 - フレキシブル サーバーのサーバー ログを有効にしてダウンロードする方法