Managed Service for Prometheus を使用して、MySQL インスタンスの可用性、接続数、クエリ、トラフィック、ファイル使用量をモニタリングできます。
前提条件
ご利用の MySQL インスタンスの認証情報(エンドポイント、ポート、ユーザー名、パスワード)を取得済みである必要があります。
MySQL モニタリングの統合
-
左側のナビゲーションウィンドウで、アクセスセンター をクリックします。
-
アクセスセンター ページの Database セクションで、MySQL をクリックします。
-
MySQL パネルの アクセス開始 タブでパラメーターを設定し、OK をクリックします。
パラメーター
説明
環境タイプの選択
ご利用の MySQL インスタンスのデプロイ環境を選択します。有効な値は以下のとおりです。
-
Kubernetes 環境
-
ECS (VPC)
-
クラウドサービス
クラスターの選択
対象のクラスターを選択します。
ECS (VPC) の選択
対象の ECS インスタンスを選択します。
データストレージリージョンの選択
環境タイプの選択 で Cloud Services を選択した場合、モニタリングデータを保存するリージョンを選択する必要があります。
MySQL サービスエンドポイント
ご利用の MySQL インスタンスの接続エンドポイントです。
説明Container Service for Kubernetes (ACK)、ECS インスタンス、ApsaraDB RDS にデプロイされた MySQL インスタンスをサポートしています。
MySQL サービスポート
ご利用の MySQL インスタンスのポート番号です。例:3306。
MySQL ユーザー名およびMySQL パスワード
ご利用の MySQL インスタンスへの接続に使用するユーザー名およびパスワードです。
重要データ漏えいなどのセキュリティリスクを回避するため、管理者アカウントを使用しないでください。代わりに、mysqld_exporter 専用の MySQL アカウントを作成し、必要な最小限の権限を付与してください。詳細については、「Prometheus 用の MySQL アクセスアカウントの作成」をご参照ください。
-
MySQL アラートルールの設定
-
Cloud Monitor コンソールにログインします。
-
左側のナビゲーションウィンドウで、 を選択して、Managed Service for Prometheus のインスタンス一覧ページを開きます。
-
ページ上部で、ご利用のインスタンスが配置されているリージョンを選択し、インスタンス名をクリックします。
-
左側のナビゲーションウィンドウで、Alarm Rules をクリックして、MySQL の Prometheus アラートルールを表示します。
Managed Service for Prometheus では、重要な MySQL メトリック向けに複数のデフォルトアラートルールが提供されています。また、ビジネス要件に基づいてカスタムアラートルールを作成することも可能です。詳細については、「Managed Service for Prometheus のアラートルールの作成」をご参照ください。
説明-
重要な MySQL メトリックの詳細については、「主要メトリック」セクションをご参照ください。
-
Managed Service for Prometheus が提供する重要な MySQL メトリック向けの事前設定済みアラートルールの詳細については、「事前設定済みメトリックモニタリングおよびアラートシステム」セクションをご参照ください。
-
MySQL ダッシュボードの表示
ダッシュボードには、可用性、データベースクエリ、ネットワークトラフィック、接続数、メモリ使用量などのモニタリングデータが表示されます。
-
Cloud Monitor コンソールにログインします。
-
左側のナビゲーションウィンドウで、アクセス管理 をクリックします。
-
アクセス管理 ページで、アクセス済みの環境 タブをクリックし、対象の環境を選択して、リスト内の環境名をクリックして詳細ページを開きます。
環境は Kubernetes 環境、ECS 環境、クラウドサービスリージョン環境 に分類されます。
-
コンポーネントの管理 タブの コンポーネントタイプ セクションで、MySQL をクリックし、次に Dashboard をクリックして、すべてのダッシュボード名を表示します。
-
ダッシュボード名をクリックして、対応する Grafana ダッシュボードを表示します。
-
可用性、秒間クエリ数 (QPS)、データベース接続数。

-
データベースクエリ。

-
トラフィックおよびメモリ使用量。

-
ファイルモニタリングデータ。

-
主要メトリック
|
タイプ |
メトリック |
説明 |
|
可用性 |
mysql_up |
MySQL インスタンスが実行中かどうかを示します。値が 1 の場合はインスタンスが稼働中、0 の場合は停止中です。 |
|
mysql_global_status_uptime |
インスタンスが稼働している時間(秒単位)。たとえば、30 分未満しか稼働していない最近再起動されたインスタンスに対してアラートを送信するために使用できます。 |
|
|
データベース接続 |
mysql_global_status_connection_errors_total |
接続エラーの総数。データベースの問題を示す一般的な指標です。 |
|
mysql_global_status_threads_connected |
現在接続されているクライアントスレッド数。 |
|
|
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 |
サーバーによって実行された文の総数。 |
|
|
トラフィック |
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 |
オペレーティングシステムが mysqld サーバーに開くことを許可するファイルの最大数。 |
|
|
mysql_global_status_innodb_num_open_files |
InnoDB が現在開いているファイル数。 |
事前設定済みメトリックモニタリングおよびアラートシステム
MySQL モニタリング用のセルフマネージド Prometheus システムを構築するには、エクスポーターのデプロイ、MySQL 接続情報の提供、サービス検出の設定、ダッシュボードの構築が必要です。Managed Service for Prometheus では、ワンクリックでの MySQL エクスポーター統合、すぐに使えるダッシュボード、事前設定済みアラートにより、これらの手順を簡略化できます。
Managed Service for Prometheus には、一般的な MySQL アラートルール向けの事前設定済みテンプレートが含まれています。
-
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 インスタンスは新しい接続を拒否します。これを解決するには、最大接続数を増やすことができます。その前に、システムが開くことのできるファイル数を確認してください。
mysql_global_variables_open_files_limit - mysql_global_variables_innodb_open_files -
MySQL InnoDB ログ待機:InnoDB ログバッファーを待機しているスレッドのレート。
rate(mysql_global_status_innodb_log_waits{${instance}}[5m])