すべてのプロダクト
Search
ドキュメントセンター

Managed Service for Prometheus:Managed Service for Prometheus による MySQL のモニタリング

最終更新日:Aug 29, 2026

このトピックでは、Managed Service for Prometheus を使用して MySQL データベースをモニタリングする方法について説明します。

前提条件

MySQL インスタンスの接続詳細 (アドレス、ポート、ユーザー名、パスワードなど) を準備してください。

MySQL モニタリングの有効化

  1. 左側のナビゲーションペインで、アクセスセンターをクリックします。

  2. アクセスセンター ページの データベース セクションで MySQL をクリックします。

  3. MySQL パネルの 接続を開始 タブで統合を設定し、OK をクリックします。

    パラメーター

    説明

    [環境タイプの選択]

    次のいずれかの環境タイプを選択します。

    • Kubernetes Environment

    • ECS (VPC)

    • Cloud Services

    クラスターの選択

    ターゲットクラスターを選択します。

    [ECS (VPC) の選択]

    ターゲット ECS インスタンスを選択します。

    [データストレージリージョンの選択]

    環境タイプの選択[クラウドサービス] に設定した場合、データストレージ用のリージョンを選択する必要があります。

    [MySQL アドレス]

    MySQL インスタンスの接続アドレスです。

    説明

    Managed Service for Prometheus は、Container Service for Kubernetes (ACK)、Elastic Compute Service (ECS)、または ApsaraDB RDS にデプロイされた MySQL インスタンスをサポートします。

    [MySQL サービスポート]

    MySQL インスタンスのポート番号です。例:3306。

    [MySQL ユーザー名]と [MySQL パスワード]

    MySQL アカウントのユーザー名とパスワードです。

    重要

    データ漏洩やその他のセキュリティリスクを防ぐため、管理者アカウントを使用しないことを推奨します。代わりに、mysqld_exporter 専用の MySQL アカウントを作成し、必要最小限の権限のみを付与してください。詳細については、「Managed Service for Prometheus 用の MySQL ユーザーの作成」をご参照ください。

MySQL のアラート設定

  1. にログインします。 Prometheusコンソールのマネージドサービス

  2. 左側のナビゲーションウィンドウで、[インスタンス] をクリックします。

  3. [Instances] ページで、ページ上部でターゲットリージョンを選択し、ターゲットインスタンスの名前をクリックします。

  4. 左側のナビゲーションペインで、アラートルール をクリックして MySQL 用の Prometheus アラートルールを表示します。

    Managed Service for Prometheus は、主要な MySQL メトリックに対して複数のデフォルトの Prometheus アラートルールを提供します。必要に応じて新しいアラートルールを追加することもできます。詳細については、「Prometheus アラートルールの作成」をご参照ください。

    説明

MySQL ダッシュボードの表示

モニタリングダッシュボードには、可用性、データベースクエリ、ネットワークトラフィック、接続、メモリのメトリックが表示されます。手順は次のとおりです。

  1. にログインします。 Prometheusコンソールのマネージドサービス

  2. 左側のナビゲーションペインで、データインポート管理 をクリックします。

  3. データインポート管理 ページで、アクセス済みの環境 タブをクリックします。対象の環境を選択し、リストでその名前をクリックして詳細ページを開きます。

    [Integrated Environments] タブには、[Kubernetes Environment][ECS Environment][Cloud Service Region Environment] の 3 つのカテゴリがあります。適切なカテゴリを選択してください。

  4. [コンポーネント管理] タブの [アドオンタイプ] セクションで、[MySQL] をクリックし、次に [ダッシュボード] をクリックすると、すべてのダッシュボード名が表示されます。

  5. ダッシュボード名をクリックして、対応する Grafana ダッシュボードを表示します。

    • 可用性、QPS、データベース接続sk

    • データベースクエリaj

    • ネットワークトラフィックとメモリ使用量xq

    • ファイルモニタリングデータqt

主要メトリック

タイプ

メトリック

説明

可用性

mysql_up

MySQL インスタンスが稼働しているかどうかを示します。値が 1 の場合はインスタンスが利用可能であることを、0 の場合はダウンしていることを示します。

mysql_global_status_uptime

データベースインスタンスの稼働時間です。このメトリックを使用して、インスタンスの稼働時間が 30 分未満の場合にトリガーされるアラートを作成できます。これは、最近再起動された可能性を示します。

データベース接続

mysql_global_status_connection_errors_total

接続エラーは、データベースエラーの主要な指標の1つです。このメトリックは、接続エラーの総数を追跡します。

mysql_global_status_threads_connected

MySQL インスタンスへの現在開いている接続の数です。

mysql_global_status_threads_running

リクエストをアクティブに処理しているスレッドの数です。

mysql_global_status_max_used_connections

サーバーの起動以降、同時に使用された接続の最大数です。

mysql_global_variables_max_connections

許可される同時クライアント接続の最大数です。この制限に達すると、新しい接続リクエストは拒否されます。

mysql_global_status_aborted_connects

MySQL サーバーへの接続試行が失敗した回数です。

mysql_global_status_aborted_clients

クライアントが接続を正常にクローズせずに終了したことによって切断された接続の数です。

クエリ

mysql_global_status_slow_queries

long_query_time 秒を超えたクエリの数です。

mysql_global_status_queries

サーバーによって実行されたステートメントの総数です。これを使用して、1 秒あたりのクエリ数 (QPS) を計算できます。

ネットワークトラフィック

mysql_global_status_bytes_received

受信ネットワークトラフィック (バイト単位)。

mysql_global_status_bytes_sent

送信ネットワークトラフィック (バイト単位)。

ファイル

mysql_global_status_opened_files

開かれたファイルの総数です。

mysql_global_status_open_files

現在開いているファイルの数です。

mysql_global_variables_open_files_limit

MySQL サーバーで利用可能なファイルディスクリプタの最大数です。

mysql_global_status_innodb_num_open_files

InnoDB ストレージエンジンによって現在開かれているファイルの数です。

メトリックとアラートシステムの構築

MySQL モニタリングのために自己管理型の Prometheus システムをセットアップするのは、複雑なプロセスです。このプロセスでは、エクスポーターのデプロイ、MySQL インスタンスの接続詳細の指定、サービスディスカバリの設定、ダッシュボードの構築が必要です。Managed Service for Prometheus は、ワンクリックセットアップで MySQL エクスポーターを統合することにより、これを簡素化します。また、すぐに使用できるモニタリングダッシュボードとアラートルールをビジュアルコンソール経由で提供し、設定のワークロードを大幅に削減します。

Managed Service for Prometheus には、一般的な MySQL メトリック用のプリセットのアラートルールテンプレートが含まれており、モニタリングおよびアラートシステムを迅速に構築できます。次のプリセットルールが利用できます。

  • [MySQL の可用性]:このメトリックの値が 0 の場合、データベースは正常に稼働していません。値が 1 の場合は、正常な稼働を示します。${instance} を使用して、アラート対象の特定のインスタンスを指定できます。

    mysql_up{${instance}} != 1
  • [MySQL のスロークエリ]:このメトリックは、データベースに最適化が必要な SQL ステートメントがあるかどうかを特定できます。

    rate(mysql_global_status_slow_queries{${instance}}[5m]) > 0
  • [MySQL 接続エラー]:接続エラーは、データベースエラーの主要なタイプです。Managed Service for Prometheus が提供するアラートルールを使用すると、接続エラーが発生した際にアラートを受け取ることができます。

    rate(mysql_global_status_connection_errors_total{${instance}}[5m]) > 0
  • [MySQL 接続使用率]:接続使用率が高いと、接続エラーが発生する可能性があります。このアラートは、使用率をモニタリングしてこれらの問題のトラブルシューティングに役立ちます。

    100 * mysql_global_status_threads_connected{${instance}} / mysql_global_variables_max_connections{${instance}} > 90

    使用率が特定のしきい値に達すると、MySQL インスタンスは新しい接続を拒否し始めます。この問題は、接続制限を増やすことで解決できます。接続制限を増やす前に、次の PromQL 式を使用して、使用可能なファイルディスクリプタの数を確認してください。

    mysql_global_variables_open_files_limit - mysql_global_status_innodb_num_open_files
  • [MySQL InnoDB ログ待機時間]:ログ書き込みの遅延を監視します。アラートのしきい値を設定できます。

    rate(mysql_global_status_innodb_log_waits{${instance}}[5m])