K8SにデプロイされたKafkaの場合、Prometheus + Grafanaが一般的に使用される監視ソリューションです。本日は、Prometheus + Grafanaを使用してK8S環境でKafkaを監視するための実際の戦闘に参加します
準備
今日の焦点はKafkaモニタリングにあります。K8S、Helm、Kafka、Prometheus、Grafana、およびその他のサービスはすべて準備が整っています。以下は、関連するデプロイを行うときに参照として使用できるいくつかのリンクを提供します。
- K8Sのビルド:「kubespray2.11 install kubernetes1.15」
- Helmのビルド:「 Helmのデプロイと体験(バージョン2.16.1)」
- プロメテウスとグラファナの構築:「プロメテウスとグラファナのKubernetes1.15迅速なデプロイ」
- Kafkaの導入:「K8S環境でのKafkaの迅速な導入(K8S外からアクセス可能)」
バージョン情報
- 知事:1.15
- Kubernetesホスト:CentOS Linuxリリース7.7.1908
- NFSサービス:IPアドレス192.168.50.135、フォルダー/ volume1 / nfs-storageclass-test
- ヘルム:2.16.1
- カフカ:2.0.1
- 飼育係:3.5.5
- プロメテウス:2.0.0
- グラファナ:5.0.0
準備ができたら、実際の戦闘を開始できます。
kafka-exporterパラメーターを確認する
デプロイするkafka-exporterはkafkaからデータを取得する必要があるため、kafka-exporterパラメーターを準備する必要があります。
- 以下の赤いボックスに示すように、TYPEがClusterIPであるKafkaサービスを確認します。
- 赤いボックスの上にサービス名があるカフカ、ポートは9092ので、後で設定情報カフカカフカ・輸出国で、であるカフカ:9092
実際の運用
- Helmウェアハウスを追加します(ウェアハウスには必要なkafka -exporterがあります):helm repo add gkarthiks https://gkarthiks.github.io/helm-charts
- ダウンロードkafka -exporter:helm fetch gkarthiks / prometheus-kafka-exporter
- ダウンロードしたチャートファイルを解凍します。tar -zxvf prometheus-kafka-exporter-0.1.0.tgz
- 解凍したディレクトリに入ります:cd prometheus-kafka-exporter
- 以下の赤いボックスに示すように、values.yamlファイルを変更します。kafka :9092は、同じ名前空間でkafkaにアクセスするためのアドレスです。
- values.yamlファイルが配置されているディレクトリで実行します:helm install --name-template kafka-exporter -f values.yaml。--Namespace kafka-test(kafkaの名前空間はkafka-testであり、ここでの名前空間はkafkaと一致している必要があります)
- サービスとポッドの準備ができているかどうかを確認します。
- この時点で、kafka-exporterをデプロイし、プロメテウスにモニタリングデータを提供できますが、プロメテウスはデータを収集するためにここに来ることを知らないので、次にプロメテウスを構成する必要があります。
- kafka-exporterサービスのアクセスアドレスを確認します。Prometheusが使用するデータを収集します。名前とポートは下図の赤いボックスに表示されているため、名前空間全体でアクセスアドレスを接続できます:kafka-exporter-prometheus-kafka-exporter.kafka-test svc.cluster.local:9308
- 「kubernetes1.15 prometheusとgrafanaの迅速なデプロイメント」によってデプロイされたプロメテウスを参照している場合は、デプロイメント中にダウンロードされたconfigmap.yamlファイルを開きます。これには、プロメテウスの構成が含まれています。他の方法でデプロイされている場合は、デプロイメントに応じてプロメテウスを見つけてください。 .ymlの場所。
- configmap.yamlは、下の赤いボックスにコンテンツを追加して、prometheusがkafka-exporterデータを収集できるようにします。
- 構成を有効にします。kubectlapply -f configmap.yaml
- この時点では、prometheusコンテナは引き続き古い構成を使用しています。構成を有効にするには、prometheusのポッドを削除して、K8Sによって自動的に作成された新しいポッドが新しい構成を使用してprometheusのポッドを見つけるようにする必要があります。kubectlget pods -n kube -システム
- 古いポッドを削除します。kubectldelete pod prometheus-68545d4fd8-f5q2w -n kube-system
- 新しいポッドが自動的に作成されるのを待ちます。
- 次に、Grafanaにログインし、以下に示すように監視ページを構成し、テンプレートのインポート操作を実行します。
- インポートテンプレートのページに番号7589を入力します。
- データソースを選択するときは、次に示すように、プロメテウスを選択する必要があります。
- この時点で、kafkaがメッセージを送受信した場合は、すぐにデータを確認できます。
この時点で、K8S環境でのkafkaモニタリングがデプロイされています。この記事で参考にしていただければ幸いです。