Prometheus と Grafana モニタリングを使用して Kubernetes 上に MySQL をセットアップする

Barbara Streisand
リリース: 2024-11-12 20:01:02
オリジナル
540 人が閲覧しました

このチュートリアルでは、Kubernetes (K8s) クラスター上に MySQL をセットアップする方法と、監視のために Prometheus と Grafana を統合する方法を説明します。 MySQL、Prometheus、Grafana の Bitnami Helm チャートを使用し、MySQL を監視するカスタム Grafana ダッシュボードを作成する方法を示します。

1. ラボ用の名前空間を作成する

まず、MySQL と監視コンポーネントをデプロイする Kubernetes 名前空間を作成します。

kubectl create namespace my-lab
ログイン後にコピー
ログイン後にコピー

ネームスペースの作成を確認するには、次のコマンドを実行します。

kubectl get namespaces
ログイン後にコピー
ログイン後にコピー

これにより、クラスタ内の名前空間の 1 つとして my-lab がリストされるはずです。

2. Helm を使用して MySQL をインストールする

Bitnami Helm チャートを使用して、my-lab 名前空間に MySQL をインストールします。 Bitnami チャート リポジトリをまだ追加していない場合は、次のコマンドを使用して追加します:

helm repo add bitnami https://charts.bitnami.com/bitnami
ログイン後にコピー
ログイン後にコピー

次に、次のコマンドを使用して MySQL をインストールします。

helm upgrade --install mysql bitnami/mysql --namespace my-lab
ログイン後にコピー
ログイン後にコピー

ステータスをチェックして MySQL が実行されていることを確認するには、次を使用します。

kubectl get pods --namespace my-lab
ログイン後にコピー
ログイン後にコピー

MySQL ポッドにアクセスする

MySQL に接続するには、まず、Kubernetes シークレットから MySQL パスワードを取得する必要があります。次のコマンドを使用してシークレットを取得します:

kubectl get secret -n my-lab
ログイン後にコピー

次に、mysql-root-password と mysql-password を次のようにデコードします。

kubectl get secret/mysql -oyaml -n my-lab
ログイン後にコピー

base64 を使用してパスワードをデコードできます:

echo <encoded-password> | base64 -d
ログイン後にコピー

次に、kubectl exec を使用して MySQL ポッドにアクセスします。

kubectl exec -it mysql-0 --namespace my-lab -- /bin/bash
ログイン後にコピー

ポッドに入ったら、root パスワードを使用して MySQL に接続します。

mysql -u root -p
ログイン後にコピー

プロンプトが表示されたら、デコードされた root パスワードを入力します。

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

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

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;
ログイン後にコピー

3. Prometheus と Grafana をインストールする

次に、MySQL を監視するために Prometheus と Grafana をインストールします。

Prometheus と Grafana をインストールする

まず、Prometheus コミュニティ Helm チャートを追加します。

helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
helm repo update
ログイン後にコピー

grafana 名前空間を作成します:

kubectl create ns grafana
ログイン後にコピー

次に、Helm を使用して Prometheus-Grafana スタックをインストールします。

helm upgrade --install grafana prometheus-community/kube-prometheus-stack --namespace grafana
ログイン後にコピー

ポッドをチェックすることでインストールを確認できます:

kubectl get pods -n grafana
ログイン後にコピー

LoadBalancer を使用して MySQL を公開する

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

kubectl edit svc/mysql -n my-lab
ログイン後にコピー

サービス タイプを ClusterIP から LoadBalancer に変更します:

spec:
  type: LoadBalancer
ログイン後にコピー

外部 IP が割り当てられていることを確認します:

kubectl get svc -n my-lab
ログイン後にコピー

Minikube を使用している場合は、サービスを外部に公開するために minikube トンネルを実行する必要がある場合があります。

minikube tunnel
ログイン後にコピー

Setting Up MySQL on Kubernetes with Prometheus & Grafana Monitoring

次に、割り当てられた IP を使用して外部から MySQL にアクセスします。

kubectl create namespace my-lab
ログイン後にコピー
ログイン後にコピー

4. Prometheus MySQL Exporter をインストールする

MySQL メトリクスを収集し、Prometheus が収集できるように公開するには、MySQL Exporter をインストールする必要があります。

エクスポーター構成の作成

MySQL 接続の詳細を含むファイル mysql-exporter-values.yaml を作成します。

kubectl get namespaces
ログイン後にコピー
ログイン後にコピー

次に、Helm を使用して MySQL エクスポーターをインストールします。

helm repo add bitnami https://charts.bitnami.com/bitnami
ログイン後にコピー
ログイン後にコピー

ポートフォワード Prometheus MySQL エクスポーター

テストのために MySQL エクスポータのメトリクスをローカル マシンに転送するには、次を使用します。

helm upgrade --install mysql bitnami/mysql --namespace my-lab
ログイン後にコピー
ログイン後にコピー

http://localhost:9104/metrics にアクセスして、メトリクスが公開されていることを確認します。

Setting Up MySQL on Kubernetes with Prometheus & Grafana Monitoring

5. Grafana を Prometheus に接続する

Prometheus と MySQL エクスポーターがセットアップされたので、Grafana を Prometheus に接続しましょう。

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

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

kubectl get pods --namespace my-lab
ログイン後にコピー
ログイン後にコピー

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

ユーザー名: 管理者
パスワード: prom-operator

Setting Up MySQL on Kubernetes with Prometheus & Grafana Monitoring

ログインしたら、Grafana のデータ ソースとして Prometheus を追加します。

「設定」に移動 >データソース。
URL http://prometheus-operated:9090.

を使用して Prometheus をデータ ソースとして追加します。

6. Grafana ダッシュボードのインポート

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

ダッシュボードのインポート

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

ダッシュボード ID 14057 (MySQL の概要)
ダッシュボード ID 7362 (MySQL パフォーマンス)

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

Setting Up MySQL on Kubernetes with Prometheus & Grafana Monitoring

7. 結論

Kubernetes で MySQL をセットアップし、監視のために Prometheus と Grafana を統合しました。 Grafana ダッシュボードを使用して、MySQL インスタンスをリアルタイムで監視できるようになりました。

重要なポイント:

  • MySQL は Bitnami Helm チャートを使用して Kubernetes 上で実行されています。
  • Prometheus は、MySQL エクスポーターを使用して MySQL からメトリクスを取得するために使用されます。
  • Grafana は、Prometheus によって収集されたデータを視覚化するように構成されています。
  • LoadBalancer サービスを使用して外部から MySQL にアクセスできます。

このセットアップを使用すると、Kubernetes 上のデータベース インフラストラクチャを簡単に拡張および監視できます。

以上がPrometheus と Grafana モニタリングを使用して Kubernetes 上に MySQL をセットアップするの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:dev.to
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート