「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > Kubernetesでmysqlを構築し、PrometheusとGrafanaで監視する

Kubernetesでmysqlを構築し、PrometheusとGrafanaで監視する

2025-04-16に投稿されました
ブラウズ:127

このチュートリアルでは、監視用のプロメテウスとグラファナを統合するとともに、Kubernetes(K8S)クラスターにMySQLをセットアップする方法を説明します。 MySQL、Prometheus、およびGrafanaのBitnami Helmチャートを使用し、MySQLを監視するためのカスタムGrafanaダッシュボードを作成する方法を紹介します。

1.ラボの名前空間を作成します

最初に、mySQLと監視コンポーネントを展開するKubernetes名前空間を作成します。

kubectl create namespace my-lab

名前空間の作成を確認するには、実行してください:

kubectl get namespaces

これは、my-labをクラスター内の名前空間の1つとしてリストする必要があります。

2.ヘルムを使用してMySQLをインストールします

Bitnami Helmチャートを使用して、My-LabネームスペースにMySQLをインストールします。 Bitnamiチャートリポジトリをまだ追加していない場合は、次のコマンドで掲載してください。

ヘルムレポジットビットナhttps://charts.bitnami.com/bitnamiを追加します
helm repo add bitnami https://charts.bitnami.com/bitnami
今、このコマンドでmysqlをインストールしてください:


ヘルムアップグレード - インストールmysql bitnami/mysql - namespace my-lab
helm repo add bitnami https://charts.bitnami.com/bitnami
ステータスを確認し、MySQLが実行されていることを確認するには、次のことを使用します。


kubectlはポッドを取得します-namespace my-lab

kubectl get pods --namespace my-lab

MySQLに接続するには、最初に、Kubernetesの秘密からMySQLパスワードを取得する必要があります。このコマンドを使用して秘密を取得します:


kubectlはsecret -n my -labを取得します

kubectl get secret -n my-lab


kubectl get Secret/mysql -oyaml -n my -lab

kubectl get secret/mysql -oyaml -n my-lab


echo | base64 -d

echo  | base64 -d


kubectl exec -it mysql-0 -namespace my-lab- /bin /bash

kubectl exec -it mysql-0 --namespace my-lab -- /bin/bash


mysql -u root -p

mysql -u root -p

データベースといくつかのテーブルを作成します

MySQL内に入ったら、監視するデータベースといくつかのテーブルを作成します:


データベースmy_db_1を作成します。 my_db_1を使用してください。 テーブルmy_table_1(varchar(100)); テーブルmy_table_2(varchar(100)); テーブルmy_table_3(varchar(100))を作成します。 my_table_1値に挿入( 'one'); my_table_1値に挿入( '1-one'); select * from my_table_1;

create database my_db_1;

use my_db_1;

create table my_table_1 (a varchar(100));
create table my_table_2 (a varchar(100));
create table my_table_3 (a varchar(100));

insert into my_table_1 values('One');
insert into my_table_1 values('One-One');

select * from my_table_1;

次に、mysqlを監視するためにプロメテウスとグラファナをインストールします。

プロメテウスとグラファナ

をインストールする

最初に、プロメテウスコミュニティヘルムチャートを追加します:


ヘルムレポはprometheus-community https://prometheus-community.github.io/helm-chartsを追加します ヘルムレポの更新

helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
helm repo update


kubectl create ns grafana

kubectl create ns grafana


ヘルムアップグレード - インストールGrafana Prometheus-Community/Kube-Prometheus-Stack-NamesPace Grafana

helm upgrade --install grafana prometheus-community/kube-prometheus-stack --namespace grafana


kubectl get pods -n grafana

kubectl get pods -n grafana
でmysqlを公開する

Kubernetesクラスターの外部からMySQLにアクセスするには、LoadBalancerを使用してMySQLサービスを公開する必要があります。 mysqlサービスを編集する:


kubectl編集svc/mysql -n my -lab

kubectl edit svc/mysql -n my-lab


仕様: タイプ:LoadBalancer

spec:
  type: LoadBalancer


kubectlはsvc -n my -labを取得します

kubectl get svc -n my-lab

Minikube Tunnel

minikube tunnel

次に、割り当てられたIPを使用して外部からmysqlにアクセスします:Setting Up MySQL on Kubernetes with Prometheus & Grafana Monitoring

mysql -h -u root -p

4. Prometheus mysql Exporterをインストールします
mysql -h  -u root -p
MySQL輸出業者をインストールして、MySQLメトリックを収集し、プロメテウスがこすりつけて露出する必要があります。

Exporter Configurationを作成

mysql接続の詳細を使用してファイルmysql-exporter-values.yamlを作成します:

mysql: DB: "" ホスト:「」 ユーザー:「ルート」 パス:「」 ポート:3306 プロトコル: "" Servicemonitor: 有効:true AdditionAllabels: リリース:グラファナ

ここで、ヘルムを使用してmysql輸出業者をインストールします:
mysql:
  db: ""
  host: ""
  user: "root"
  pass: ""
  port: 3306
  protocol: ""

serviceMonitor:
  enabled: true
  additionalLabels:
    release: grafana

ヘルムアップグレード - インストールmysql-exporter prometheus-community/prometheus-mysql-exporter -f mysql-exporter-values.yaml

ポートフォワードプロメテウスmysql輸出業者
mysql -h  -u root -p
テストのためにMySQL輸出機メトリックをローカルマシンに転送するには、使用してください:

kubectlポートフォワードSVC/mysql-exporter-prometheus-mysql-exporter 9104 -n my-lab

http:// localhost:9104/metricsにアクセスすることにより、メトリックが公開されていることを確認します。
mysql -h  -u root -p

5.グラファナをプロメテウスに接続します Setting Up MySQL on Kubernetes with Prometheus & Grafana Monitoring

プロメテウスとMySQL輸出業者がセットアップされたので、GrafanaをPrometheusに接続しましょう。

ポートフォワードグラファナ

Grafanaダッシュボードにアクセスするには、次のポートフォワードコマンドを実行します。

KubectlポートフォワードSVC/Grafana 3000:80 -N Grafana


これにより、Grafanaはhttp:// localhost:3000でアクセスできます。デフォルトのログイン資格情報は次のとおりです。

username:admin
kubectl port-forward svc/grafana 3000:80 -n grafana


ログインしたら、プロメテウスをグラファナのデータソースとして追加します:

configuration>データソースに移動します。Setting Up MySQL on Kubernetes with Prometheus & Grafana Monitoring URL http:// prometheus-operated:9090を使用してデータソースとしてプロメテウスを追加します。

6.グラファナダッシュボードをインポートします

MySQLを監視するには、Grafanaのダッシュボードリポジトリから事前に構成されたダッシュボードをインポートできます。
インポートダッシュボード

ダッシュボードに移動>インポートして、次のダッシュボードIDを入力します:

ダッシュボードID 14057(mysqlの概要)

ダッシュボードID 7362(mysqlパフォーマンス)

これらのダッシュボードは、接続、クエリ、リソース利用などの関連するMySQLメトリックを自動的にロードおよび表示します。


7。結論

監視のためにKubernetesと統合されたPrometheusとGrafanaでMySQLを正常に設定します。 Grafana Dashboardsを使用して、MySQLインスタンスをリアルタイムで監視できるようになりました。

Setting Up MySQL on Kubernetes with Prometheus & Grafana Monitoringキーテイクアウト:

mysqlは、Bitnami Helmチャートを使用してKubernetesで実行されています。

Prometheusは、MySQL Exporterを使用してMySQLからメトリックをこするために使用されます。

Grafanaは、Prometheusによって収集されたデータを視覚化するように構成されています。
  • Loadbalancerサービスを使用して、MySQLに外部からアクセスできます。
  • このセットアップを使用すると、Kubernetesのデータベースインフラストラクチャを簡単に拡大および監視できます。
リリースステートメント この記事は、https://dev.to/dm8ry/setting-up-mysql-on-kubernetes--prometheus-grafana-monitoring-3jd3に再現されています。
最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3