このドキュメントでは、Google Cloud Managed Service for Prometheus を使用して Apache Hadoop から指標を収集できるように、Google Kubernetes Engine の Deployment を構成する方法について説明します。このドキュメントでは、次の方法について説明します。
- Hadoop のエクスポータを設定して、指標を報告する。
- エクスポートされた指標を収集するために、Managed Service for Prometheus の PodMonitoring リソースを構成する。
- Cloud Monitoring のダッシュボードにアクセスして指標を表示する。
- 指標をモニタリングするようにアラートルールを構成する。
以下の手順は、Managed Service for Prometheus でマネージド コレクションを使用している場合にのみ適用されます。セルフデプロイ コレクションを使用している場合は、JMX エクスポータのソース リポジトリでインストール情報をご覧ください。
以下の手順は一例であり、ほとんどの Kubernetes 環境で機能します。セキュリティ ポリシーや組織のポリシーの制限により、アプリケーションやエクスポータのインストールに問題がある場合は、オープンソース ドキュメントでサポートを確認することをおすすめします。Hadoop の詳細については、Apache Hadoop をご覧ください。
前提条件
Managed Service for Prometheus とマネージド コレクションを使用して Hadoop から指標を収集するには、Deployment が次の要件を満たしている必要があります。
- クラスタで Google Kubernetes Engine バージョン 1.21.4-gke.300 以降を実行している必要があります。
- マネージド コレクションを有効にして、Managed Service for Prometheus を実行する必要があります。詳細については、マネージド コレクションを使ってみるをご覧ください。
- Hadoop とのインテグレーションに Cloud Monitoring で利用可能なダッシュボードを使用するには、
jmx-exporter
バージョン 0.17.0 以降を使用する必要があります。利用可能なダッシュボードの詳細については、ダッシュボードを表示するをご覧ください。
port
フィールドと matchLabels
フィールドの値がモニタリング対象の Hadoop Pod の値と一致することを確認します。リモート JMX 接続を受け入れるように、NameNode と DataNode を構成する必要があります。この構成を行うには、Hadoop の Unix シェルガイドで説明されているように、NAMENODE_HDFS_OPTS
環境変数と DATANODE_HDFS_OPTS
環境変数を設定します。Hadoop エクスポータをインストールする
Hadoop ワークロードにサイドカーとして Hadoop エクスポータ jmx-exporter
をインストールすることをおすすめします。サイドカーの使用方法については、マルチコンテナ Pod を使用した Kubernetes での拡張アプリケーションをご覧ください。
jmx-exporter
をサイドカーとして Hadoop にインストールするには、次の例のように Hadoop の構成を変更します。
先頭が記号 +
の行すべてを構成に追加する必要があります。
構成の変更内容をローカル ファイルから適用するには、次のコマンドを実行します。
kubectl apply -n NAMESPACE_NAME -f FILE_NAME
Terraform を使用して構成を管理することもできます。
PodMonitoring リソースを定義する
ターゲット ディスカバリの場合、Managed Service for Prometheus Operator には、同じ Namespace 内の Hadoop エクスポータに対応する PodMonitoring リソースが必要です。
次の PodMonitoring 構成を使用できます。
ラベルセレクタとポートが、Hadoop エクスポータをインストールするで使用したセレクタとポートと一致していることを確認します。
構成の変更内容をローカル ファイルから適用するには、次のコマンドを実行します。
kubectl apply -n NAMESPACE_NAME -f FILE_NAME
Terraform を使用して構成を管理することもできます。
ルールとアラートを定義する
次の Rules
構成を使用して、Hadoop 指標に関するアラートを定義できます。
構成の変更内容をローカル ファイルから適用するには、次のコマンドを実行します。
kubectl apply -n NAMESPACE_NAME -f FILE_NAME
Terraform を使用して構成を管理することもできます。
ルールをクラスタに適用する方法については、マネージド ルールの評価とアラートをご覧ください。
アラートのしきい値は、アプリケーションに合わせて調整できます。構成を確認する
Metrics Explorer を使用すると、Hadoop エクスポータが正しく構成されていることを確認できます。Cloud Monitoring が指標を取り込むまでに 1~2 分かかる場合があります。
指標が取り込まれていることを確認する手順は次のとおりです。
-
Google Cloud コンソールのナビゲーション パネルで [Monitoring] を選択し、次に [leaderboard Metrics Explorer] を選択します。
- クエリビルダー ペインのツールバーで、[codeMQL] または [codePROMQL] という名前のボタンを選択します。
- [言語] で [PromQL] が選択されていることを確認します。言語切り替えボタンは、クエリの書式設定と同じツールバーにあります。
- 次のクエリを入力して実行します。
up{job="hadoop", cluster="CLUSTER_NAME", namespace="NAMESPACE_NAME"}
ダッシュボードを表示する
Cloud Monitoring インテグレーションには、Hadoop Prometheus の概要ダッシュボードが含まれています。ダッシュボードは、インテグレーションを構成すると自動的にインストールされます。インテグレーションをインストールすることなく、ダッシュボードの静的プレビューを表示することもできます。
インストールされているダッシュボードを表示する手順は次のとおりです。
-
Google Cloud コンソールのナビゲーション パネルで、[Monitoring] を選択してから、[ダッシュボード] を選択します。
- [ダッシュボード リスト] タブを選択します。
- [統合] カテゴリを選択します。
- ダッシュボードの名前(Hadoop Prometheus Overview など)をクリックします。
ダッシュボードの静的プレビューを表示する手順は次のとおりです。
-
Google Cloud コンソールのナビゲーション パネルで、[Monitoring] を選択してから、[インテグレーション] を選択します。
- [デプロイメント プラットフォーム] フィルタの [Kubernetes Engine] をクリックします。
- Apache Hadoop インテグレーションを見つけ、[詳細を表示] をクリックします。
- [ダッシュボード] タブを選択します。
トラブルシューティング
指標の取り込みに関する問題のトラブルシューティングについては、取り込み側の問題のトラブルシューティングのエクスポータからの収集に関する問題をご覧ください。