tencent cloud

Tencent Kubernetes Engine

お知らせ・リリースノート
製品アップデート情報
製品リリース記録
製品の説明
製品の優位性
製品アーキテクチャ
ユースケース
製品機能
リージョンとアベイラビリティーゾーン
クイックスタート
初心者ガイド
標準クラスターのクイック作成
ビギナー向け事例
コンテナアプリケーションのクラウドへのデプロイ Check List
TKE標準クラスターガイド
テンセントクバネティスエンジン
クラスター管理
ネットワーク管理
ストレージ管理
Worker ノードの概要
Kubernetes Object Management
ワークロード
クラウドネイティブサービスガイド
Prometheus監視サービス
TKE Serverlessクラスターガイド
TKE登録クラスターガイド
実践チュートリアル
Serverlessクラスター
ネットワーク
ログ
監視
運用・保守
DevOps
オートスケーリング
よくあるご質問
クラスター類
TKE Serverlessクラスター
運用保守系
サービス類
イメージリポジトリ類
リモート端末類
ドキュメントTencent Kubernetes Engine実践チュートリアル監視Prometheusを使用してMySQLとMariaDBをモニタリングします

Prometheusを使用してMySQLとMariaDBをモニタリングします

PDF
フォーカスモード
フォントサイズ
最終更新日: 2025-09-28 19:59:50

ユースケース

MySQLは、一般的に使われているリレーショナルデータベースです。MariaDBは、MySQのブランチバージョンとして、MySQLプロトコルと互換性があり、普及が進んでいます。Kubernetesの環境では、オープンソースmysqld-exporterの助けを借りてPrometheusを使用し、MySQLとMariaDBをモニタリングできます。ここでPrometheusについて学び、使用を開始してください。

mysqld-exporterの概要

mysqld-exporterは、MySQLやMariaDBの特定のデータベースのステータスに関するデータを読み込み、Prometheusのメトリクス形式に変換してHTTPインターフェースとして公開し、PrometheusによってキャプチャされることでPrometheusメトリクスをサポートしていないMySQLやMariaDBをPrometheusでモニタリングできるようにします。下図に示すとおりです。


操作手順

mysqld-exporterのデプロイ

注意
mysqld-exporterをデプロイする前に、クラスター内、クラスター外、または既存のクラウドサービスを使用してMySQLまたはMariaDBをデプロイしていることを確認してください。

MySQLのデプロイ

アプリマーケットプレイスからMySQLをクラスターにデプロイすることを例に取ります。手順は次のとおりです。
1. TKEコンソールにログインし、左側ナビゲーションバーからアプリマーケットプレイスを選択します。
2. アプリマーケットプレイスページで、MySQLを検索し、選択します。
3. アプリケーションの詳細ページで、アプリケーションの作成をクリックします。
4. アプリケーションの作成ページで、アプリケーションの情報を入力し、作成をクリックします。
5. アプリケーションの作成が完了したら、左側ナビゲーションバーからアプリケーションを選択し、アプリケーションのページでアプリケーションの詳細を確認します。
6. 以下のコマンドを実行し、MySQLが正常に動作しているか確認します。
$ kubectl get pods
NAME READY STATUS RESTARTS AGE
mysql-698b898bf7-4dc5k 1/1 Running 0 11s
7. 以下のコマンドを実行し、rootパスワードを取得します。
$ kubectl get secret -o jsonpath={.data.mysql-root-password} mysql | base64 -d
6ZAj33yLBo

mysqld-exporterのデプロイ

MySQLのデプロイを行うと、mysqld-exporterのデプロイを開始できるようになります。手順は次のとおりです。
1. 以下のコマンドを実行し、mysqld-exporterのアカウントを作成し、MySQLにログインします。以下に例を示します。
$ kubectl exec -it mysql-698b898bf7-4dc5k bash
$ mysql -uroot -p6ZAj33yLBo
2. 以下のコマンドを実行し、SQLステートメントを入力してアカウントを作成します。mysqld-exporter/123456を例とした場合、次のようになります。
CREATE USER 'mysqld-exporter' IDENTIFIED BY '123456' WITH MAX_USER_CONNECTIONS 3;
GRANT PROCESS, REPLICATION CLIENT, REPLICATION SLAVE, SELECT ON *.* TO 'mysqld-exporter';
flush privileges;
3. yamlファイルを使用してmysqld-exporterをデプロイします。以下に例を示します。
注意
実際の状況に応じて、DATA_SOURCE_NAMEのアカウントパスワードとMySQLの接続アドレスを置き換える必要があります。
apiVersion: apps/v1
kind: Deployment
metadata:
name: mysqld-exporter
spec:
replicas: 1
selector:
matchLabels:
app: mysqld-exporter
template:
metadata:
labels:
app: mysqld-exporter
spec:
containers:
- name: mysqld-exporter
image: prom/mysqld-exporter:v0.12.1
args:
- --collect.info_schema.tables
- --collect.info_schema.innodb_tablespaces
- --collect.info_schema.innodb_metrics
- --collect.global_status
- --collect.global_variables
- --collect.slave_status
- --collect.info_schema.processlist
- --collect.perf_schema.tablelocks
- --collect.perf_schema.eventsstatements
- --collect.perf_schema.eventsstatementssum
- --collect.perf_schema.eventswaits
- --collect.auto_increment.columns
- --collect.binlog_size
- --collect.perf_schema.tableiowaits
- --collect.perf_schema.indexiowaits
- --collect.info_schema.userstats
- --collect.info_schema.clientstats
- --collect.info_schema.tablestats
- --collect.info_schema.schemastats
- --collect.perf_schema.file_events
- --collect.perf_schema.file_instances
- --collect.perf_schema.replication_group_member_stats
- --collect.perf_schema.replication_applier_status_by_worker
- --collect.slave_hosts
- --collect.info_schema.innodb_cmp
- --collect.info_schema.innodb_cmpmem
- --collect.info_schema.query_response_time
- --collect.engine_tokudb_status
- --collect.engine_innodb_status
ports:
- containerPort: 9104
protocol: TCP
env:
- name: DATA_SOURCE_NAME
value: "mysqld-exporter:123456@(mysql.default.svc.cluster.local:3306)/"
--
apiVersion: v1
kind: Service
metadata:
name: mysqld-exporter
labels:
app: mysqld-exporter
spec:
type: ClusterIP
ports:
- port: 9104
protocol: TCP
name: http
selector:
app: mysqld-exporter

モニタリングキャプチャ設定の追加

mysqld-exporterのデプロイの後、モニタリングキャプチャ設定を追加して、mysqld-exporterが公開するデータをキャプチャできるようにします。ServiceMonitor定義の例は次のとおりです(クラスターでサポートする必要があります)。
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
name: mysqld-exporter
spec:
endpoints:
interval: 5s
targetPort: 9104
namespaceSelector:
matchNames:
- default
selector:
matchLabels:
app: mysqld-exporter
Prometheusのネイティブ設定の例は次のとおりです。
- job_name: mysqld-exporter
scrape_interval: 5s
kubernetes_sd_configs:
- role: endpoints
namespaces:
names:
- default
relabel_configs:
- action: keep
source_labels:
- __meta_kubernetes_service_label_app_kubernetes_io_name
regex: mysqld-exporter
- action: keep
source_labels:
- __meta_kubernetes_endpoint_port_name
regex: http

モニタリングパネルの追加

モニタリングキャプチャ設定で正常にデータをキャプチャできるようになったら、Grafanaにモニタリングパネルを追加して表示する必要があります。
MySQLやMariaDBの概要を見るだけの場合、パネルgrafana.comをインポートできます。下図に示すとおりです。

よりリッチなパネルにしたい場合は、perconaオープンソースパネルMySQL_で始まるjsonファイルの内容をインポートするだけでOKです。

ヘルプとサポート

この記事はお役に立ちましたか?

フィードバック