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

Managed Service for Prometheus:MySQL データベースを監視するための Managed Service for Prometheus の使用

最終更新日:Dec 27, 2024

このトピックでは、Alibaba Cloud Managed Service for Prometheus を使用して MySQL データベースを監視する方法について説明します。

前提条件

監視対象の MySQL データベースに関する情報(アドレス、ポート番号、MySQL データベースへの接続に使用するユーザー名とパスワードなど)が入手可能です。

MySQL コンポーネントを有効にする

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

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

    image

  3. MySQL パネルの 統合の開始タブで、パラメータを設定し、OK をクリックします。データベースを監視するための Prometheus インスタンスが作成されます。

    パラメータ

    説明

    環境タイプの選択

    データベースがデプロイされている環境を選択します。有効な値:

    • Kubernetes 環境

    • ECS (VPC)

    • クラウドサービス

    クラスターの選択

    データベースがデプロイされている ACK クラスターを選択します。このパラメータは、データベースが Container Service for Kubernetes (ACK) クラスターにデプロイされている場合に利用可能です。

    VPC の選択

    データベースがデプロイされている ECS インスタンスを選択します。このパラメータは、データベースが Elastic Compute Service (ECS) インスタンスにデプロイされている場合に利用可能です。

    ストレージのリージョンの選択

    このパラメータは、データベースが ApsaraDB RDS にデプロイされている場合に利用可能です。

    Mysql アドレス

    MySQL データベースのアドレス。

    説明

    MySQL データベースは、ACK クラスター、ECS インスタンス、または ApsaraDB RDS にデプロイできます。

    Mysql サービスポート

    MySQL データベースのポート番号。例:3306。

    Mysql ユーザー名Mysql パスワード

    MySQL データベースのユーザー名とパスワード。

    重要

    データ漏洩のリスクを防ぐため、管理者アカウントを使用しないことをお勧めします。 mysqld_exporter 用の MySQL アカウントを作成し、そのアカウントに最小限の権限を付与します。詳細については、Managed Service for Prometheus 用の MySQL ユーザーの作成を参照してください。

MySQL データベースのアラートを設定する

  1. Managed Service for Prometheus コンソールにログオンします。

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

  3. 上部のナビゲーションバーで、リージョンを選択します。次に、Prometheus インスタンスの名前をクリックします。

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

    Managed Service for Prometheusは、主要なMySQLメトリックについて複数のデフォルトのアラートルールを提供します。ビジネス要件に基づいてアラートルールを作成することもできます。詳細については、Prometheusインスタンスのアラートルールを作成するを参照してください。

    説明
    • 主要な MySQL メトリクスの詳細については、「主要なメトリクス」セクションを参照してください。

    • Managed Service for Prometheus が主要な MySQL メトリクスにプリセットしているアラートルールについて詳しくは、「データベースのアラート設定」セクションをご覧ください。

ダッシュボードを表示する

ダッシュボードで、サービスの可用性、データベースクエリ、ネットワークトラフィック、接続、メモリ使用量などの監視データを表示できます。

  1. Managed Service for Prometheus コンソールにログオンします。

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

  3. 統合管理ページの統合環境タブで、データベースがデプロイされている環境の名前をクリックします。

    image

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

  5. ダッシュボードの名前をクリックします。

    • 可用性、1 秒あたりのクエリ数 (QPS)、およびデータベース接続sk

    • データベースクエリaj

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

    • ファイル監視データqt

主要なメトリクス

タイプ

メトリクス

説明

可用性

mysql_up

MySQL データベースが使用可能かどうかを示します。

mysql_global_status_uptime

MySQL データベースの実行時間を示します。このメトリクスに対してアラートルールを作成して、実行時間が 30 分未満かどうかを確認できます。

データベース接続

mysql_global_status_connection_errors_total

主要なデータベースエラーの 1 つである接続エラーを示します。このメトリクスを使用して、特定のエラーに関する情報と接続エラーの数を表示できます。

mysql_global_status_threads_connected

MySQL データベースへの接続が確立されているスレッドの数を示します。

mysql_global_status_threads_running

MySQL データベースへの接続要求が送信されたが、まだ成功していないスレッドの数を示します。

mysql_global_status_max_used_connections

MySQL データベースへの最大接続数を示します。

mysql_global_variables_max_connections

MySQL データベースへの接続の上限を示します。接続数が上限に達すると、接続を確立するための要求は拒否されます。

mysql_global_status_aborted_connects

失敗した接続試行を示します。

mysql_global_status_aborted_clients

タイムアウトした接続を示します。

クエリ

mysql_global_status_slow_queries

MySQL データベースのスロークエリを示します。

mysql_global_status_queries

MySQL データベースの QPS を示します。

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

mysql_global_status_bytes_received

受信トラフィックを示します。

mysql_global_status_bytes_sent

送信トラフィックを示します。

ファイル監視データ

mysql_global_status_opened_files

開かれているファイルを示します。

mysql_global_status_open_files

MySQL データベースで開かれているファイルを示します。

mysql_global_variables_open_files_limit

開くことができるファイルを示します。

mysql_global_status_innodb_num_open_files

InnoDB によって開かれているファイルを示します。

データベースのアラートを設定する

セルフマネージド Prometheus システムを使用して MySQL データベースを監視するのは複雑です。MySQL エクスポーターをインストールし、データベースへの接続に関する情報を入力し、サービスディスカバリを設定し、ダッシュボードを構築する必要があります。Managed Service for Prometheus は、組み込みの MySQL エクスポーター、すぐに使用できるダッシュボード、および視覚化されたコンソールでのアラートを提供します。これにより、サービスのデプロイが簡素化され、ワークロードが軽減されます。

Managed Service for Prometheus は、MySQL データベース用のデフォルトのアラートルールを提供し、ダッシュボードとアラートシステムを効率的に構築するのに役立ちます。次のアラートルールがプリセットされています。

  • 可用性:メトリック値が 0 の場合、MySQL データベースは使用できません。メトリック値が 1 の場合、MySQL データベースは想定どおりに実行されています。${instance} 変数を、監視する MySQL データベースに置き換えることができます。

    mysql_up{${instance}} != 1
  • スロークエリ:このメトリクスを使用して、データベースで改善できる SQL ステートメントを特定できます。

    rate(mysql_global_status_slow_queries{${instance}}[5m]) > 0
  • 接続エラー:接続エラーは、主要なデータベースエラーの 1 つです。アラートがトリガーされると、エラータイプや QPS などのエラーの詳細を含む通知を受信できます。

    rate(mysql_global_status_connection_errors_total{${instance}}[5m]) > 0
  • 接続の使用率:ほとんどの接続エラーは、接続数が不十分であることが原因です。このメトリクスに基づいて接続エラーのトラブルシューティングを行うことができます。

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

    接続の使用率が上限に達すると、MySQL データベースは接続要求を拒否します。この問題を解決するには、上限を引き上げます。接続の上限を引き上げる前に、次のコマンドを実行して、開くことができるファイルの上限を確認する必要があります。

    mysql_global_variables_open_files_limit - mysql_global_variables_innodb_open_files
  • Innodb ログ待機時間:ログ書き込みがアンドゥログのフラッシュを待機する必要がある時間を指定できます。

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