このトピックでは、Managed Service for Prometheus を使用して MySQL データベースを監視する方法について説明します。
前提条件
MySQL インスタンスの接続情報 (アドレス、ポート、ユーザー名、パスワード) を準備してください。
MySQL 監視の有効化
にログインします。 ARMSコンソールを使用します。
-
左側のナビゲーションペインで、アクセスセンターをクリックします。
-
アクセスセンター ページで、データベース セクションの [MySQL] をクリックします。
-
MySQL パネルの 接続を開始 タブで統合を設定し、OK をクリックします。
パラメータ
説明
[環境タイプの選択]
次のいずれかの環境タイプを選択します。
-
[Kubernetes Environment]
-
[ECS (VPC)]
-
[Cloud Services]
クラスターの選択
対象のクラスターを選択します。
[ECS (VPC) の選択]
対象の ECS インスタンスを選択します。
[データストレージリージョンの選択]
環境タイプの選択 を [クラウドサービス] に設定した場合、データ保存用のリージョンを選択する必要があります。
[MySQL アドレス]
MySQL インスタンスの接続アドレスです。
説明Managed Service for Prometheus は、Container Service for Kubernetes (ACK)、ECS、または ApsaraDB RDS にデプロイされた MySQL インスタンスをサポートします。
[MySQL サービスポート]
MySQL インスタンスのポート番号です。例: 3306。
[MySQL ユーザー名]および[MySQL パスワード]
MySQL アカウントのユーザー名とパスワードです。
重要データ漏洩などのセキュリティリスクを防ぐため、管理者アカウントの使用は推奨されません。代わりに、mysqld_exporter 専用の MySQL アカウントを作成し、必要最小限の権限のみを付与してください。詳細については、「Managed Service for Prometheus 用の MySQL ユーザーの作成」をご参照ください。
-
MySQL のアラート設定
にログインします。 ARMSコンソールを使用します。
左側のナビゲーションウィンドウで、.
-
ページ上部で対象のリージョンを選択し、対象のクラスター名をクリックします。
-
左側のナビゲーションペインで、アラートルール をクリックして、MySQL の Prometheus アラートルールを表示します。
Managed Service for Prometheus は、主要な MySQL メトリックに対して複数のデフォルトの Prometheus アラートルールを提供しています。ビジネスニーズに応じて、新しいアラートルールを追加することもできます。詳細については、「Prometheus アラートルールの作成」をご参照ください。
説明-
主要な MySQL メトリックの詳細については、以下の「主要なメトリック」セクションをご参照ください。
-
Managed Service for Prometheus が主要な MySQL メトリックに対して提供するプリセットアラートルールの詳細については、以下の「メトリックおよびアラートシステムの構築」セクションをご参照ください。
-
MySQL ダッシュボードの表示
監視ダッシュボードには、可用性、データベースクエリ、ネットワークトラフィック、接続、メモリに関するメトリックが表示されます。次の手順を実行します。
にログインします。 ARMSコンソールを使用します。
-
左側のナビゲーションペインで、データインポート管理をクリックします。
-
データインポート管理 ページで、アクセス済みの環境 タブをクリックします。 リストから対象の環境を選択し、その名前をクリックして詳細ページを開きます。
[Integrated Environments] タブには、[Kubernetes Environment]、[ECS Environment]、[Cloud Service Region Environment] の 3 つのカテゴリがあります。適切なカテゴリを選択してください。
-
[コンポーネント管理] タブの [アドオンタイプ] セクションで、[MySQL] をクリックし、次に [ダッシュボード] をクリックしてすべてのダッシュボード名を表示します。
-
ダッシュボード名をクリックして、対応する Grafana ダッシュボードを表示します。
-
可用性、QPS、データベース接続

-
データベースクエリ

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

-
ファイル監視データ

-
主要なメトリック
|
タイプ |
メトリック |
説明 |
|
可用性 |
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 |
|
|
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_variables_innodb_open_files -
[MySQL InnoDB ログ待機]: このルールは、ログ書き込みの待機が検出された場合にトリガーされます。
rate(mysql_global_status_innodb_log_waits{${instance}}[5m]) > 0