arrow_back

Managed Service for Prometheus を使用したエクスポータからの指標の収集

ログイン 参加
700 以上のラボとコースにアクセス

Managed Service for Prometheus を使用したエクスポータからの指標の収集

ラボ 1時間 30分 universal_currency_alt クレジット: 5 show_chart 中級
info このラボでは、学習をサポートする AI ツールが組み込まれている場合があります。
700 以上のラボとコースにアクセス

GSP1026

Google Cloud セルフペース ラボのロゴ

概要

このラボでは、Managed Service for Prometheus を使用して、エクスポータ経由で他のインフラストラクチャ ソースから指標を収集します。

目標

このラボでは、次の方法について学びます。

  1. GKE インスタンスをデプロイする
  2. PodMonitoring カスタム リソースと node-exporter ツールを構成する
  3. GMP バイナリをローカルでビルドし、GKE インスタンスにデプロイする
  4. Prometheus 構成を適用して指標の収集を開始する

設定と要件

[ラボを開始] ボタンをクリックする前に

こちらの説明をお読みください。ラボには時間制限があり、一時停止することはできません。タイマーは、Google Cloud のリソースを利用できる時間を示しており、[ラボを開始] をクリックするとスタートします。

このハンズオンラボでは、シミュレーションやデモ環境ではなく実際のクラウド環境を使って、ラボのアクティビティを行います。そのため、ラボの受講中に Google Cloud にログインおよびアクセスするための、新しい一時的な認証情報が提供されます。

このラボを完了するためには、下記が必要です。

  • 標準的なインターネット ブラウザ(Chrome を推奨)
注: このラボの実行には、シークレット モード(推奨)またはシークレット ブラウジング ウィンドウを使用してください。これにより、個人アカウントと受講者アカウント間の競合を防ぎ、個人アカウントに追加料金が発生しないようにすることができます。
  • ラボを完了するための時間(開始後は一時停止できません)
注: このラボでは、受講者アカウントのみを使用してください。別の Google Cloud アカウントを使用すると、そのアカウントに料金が発生する可能性があります。

ラボを開始して Google Cloud コンソールにログインする方法

  1. [ラボを開始] ボタンをクリックします。ラボの料金をお支払いいただく必要がある場合は、表示されるダイアログでお支払い方法を選択してください。 左側の [ラボの詳細] ペインには、以下が表示されます。

    • [Google Cloud コンソールを開く] ボタン
    • 残り時間
    • このラボで使用する必要がある一時的な認証情報
    • このラボを行うために必要なその他の情報(ある場合)
  2. [Google Cloud コンソールを開く] をクリックします(Chrome ブラウザを使用している場合は、右クリックして [シークレット ウィンドウで開く] を選択します)。

    ラボでリソースがスピンアップし、別のタブで [ログイン] ページが表示されます。

    ヒント: タブをそれぞれ別のウィンドウで開き、並べて表示しておきましょう。

    注: [アカウントの選択] ダイアログが表示されたら、[別のアカウントを使用] をクリックします。
  3. 必要に応じて、下のユーザー名をコピーして、[ログイン] ダイアログに貼り付けます。

    {{{user_0.username | "Username"}}}

    [ラボの詳細] ペインでもユーザー名を確認できます。

  4. [次へ] をクリックします。

  5. 以下のパスワードをコピーして、[ようこそ] ダイアログに貼り付けます。

    {{{user_0.password | "Password"}}}

    [ラボの詳細] ペインでもパスワードを確認できます。

  6. [次へ] をクリックします。

    重要: ラボで提供された認証情報を使用する必要があります。Google Cloud アカウントの認証情報は使用しないでください。 注: このラボでご自身の Google Cloud アカウントを使用すると、追加料金が発生する場合があります。
  7. その後次のように進みます。

    • 利用規約に同意してください。
    • 一時的なアカウントなので、復元オプションや 2 要素認証プロセスは設定しないでください。
    • 無料トライアルには登録しないでください。

その後、このタブで Google Cloud コンソールが開きます。

注: Google Cloud のプロダクトやサービスにアクセスするには、ナビゲーション メニューをクリックするか、[検索] フィールドにサービス名またはプロダクト名を入力します。 ナビゲーション メニュー アイコンと検索フィールド

Cloud Shell をアクティブにする

Cloud Shell は、開発ツールと一緒に読み込まれる仮想マシンです。5 GB の永続ホーム ディレクトリが用意されており、Google Cloud で稼働します。Cloud Shell を使用すると、コマンドラインで Google Cloud リソースにアクセスできます。

  1. Google Cloud コンソールの上部にある「Cloud Shell をアクティブにする」アイコン 「Cloud Shell をアクティブにする」アイコン をクリックします。

  2. ウィンドウで次の操作を行います。

    • Cloud Shell 情報ウィンドウで操作を進めます。
    • Cloud Shell が認証情報を使用して Google Cloud API を呼び出すことを承認します。

接続した時点で認証が完了しており、プロジェクトに各自の Project_ID が設定されます。出力には、このセッションの PROJECT_ID を宣言する次の行が含まれています。

Your Cloud Platform project in this session is set to {{{project_0.project_id | "PROJECT_ID"}}}

gcloud は Google Cloud のコマンドライン ツールです。このツールは、Cloud Shell にプリインストールされており、タブ補完がサポートされています。

  1. (省略可)次のコマンドを使用すると、有効なアカウント名を一覧表示できます。
gcloud auth list
  1. [承認] をクリックします。

出力:

ACTIVE: * ACCOUNT: {{{user_0.username | "ACCOUNT"}}} To set the active account, run: $ gcloud config set account `ACCOUNT`
  1. (省略可)次のコマンドを使用すると、プロジェクト ID を一覧表示できます。
gcloud config list project

出力:

[core] project = {{{project_0.project_id | "PROJECT_ID"}}} 注: Google Cloud における gcloud ドキュメントの全文については、gcloud CLI の概要ガイドをご覧ください。

タスク 1. GKE クラスタをデプロイする

  • 以下を実行して、基本的な GKE クラスタをデプロイします。
gcloud beta container clusters create gmp-cluster --num-nodes=1 --zone {{{project_0.default_zone | Zone}}} --enable-managed-prometheus gcloud container clusters get-credentials gmp-cluster --zone={{{project_0.default_zone | Zone}}}

タスク 2. Namespace を設定する

  • サンプル アプリケーションの一部として作成するリソース用に gmp-test Kubernetes Namespace を作成します。
kubectl create ns gmp-test Prometheus がデプロイされていることを確認する

タスク 3. サンプル アプリケーションをデプロイする

このマネージド サービスは、指標ポートに Prometheus 指標を送信するサンプル アプリケーションのマニフェストを提供します。このアプリケーションは 3 つのレプリカを使用します。

  • サンプル アプリケーションをデプロイするには、次のコマンドを実行します。
kubectl -n gmp-test apply -f https://raw.githubusercontent.com/GoogleCloudPlatform/prometheus-engine/v0.2.3/examples/example-app.yaml

タスク 4. PodMonitoring リソースを構成する

サンプル アプリケーションから出力された指標データを取り込むには、ターゲット スクレイピングを使用します。ターゲットのスクレイピングと指標の取り込みは、Kubernetes のカスタム リソースを使用して構成されます。マネージド サービスは、PodMonitoring カスタム リソース(CR)を使用します。

PodMonitoring CR は、CR がデプロイされている Namespace のターゲットのみをスクレイピングします。複数の Namespace のターゲットをスクレイピングするには、各 Namespace に同じ PodMonitoring CR をデプロイします。kubectl get podmonitoring -A を実行すると、PodMonitoring リソースが目的の Namespace にインストールされていることを確認できます。

すべての Managed Service for Prometheus CR のリファレンス ドキュメントについては、prometheus-engine/doc/api のリファレンスをご覧ください。

次のマニフェストでは、gmp-test Namespace で PodMonitoring リソース prom-example を定義します。このリソースは、Kubernetes ラベル セレクターを使用して、Namespace にあるラベルが app で値が prom-example のすべての Pod を検索します。一致する Pod が 30 秒ごとに、/metrics HTTP パスの metrics というポートでスクレイピングされます。

apiVersion: monitoring.googleapis.com/v1alpha1 kind: PodMonitoring metadata: name: prom-example spec: selector: matchLabels: app: prom-example endpoints: - port: metrics interval: 30s
  • このリソースを適用するには、次のコマンドを実行します。
kubectl -n gmp-test apply -f https://raw.githubusercontent.com/GoogleCloudPlatform/prometheus-engine/v0.2.3/examples/pod-monitoring.yaml

マネージド コレクタが一致する Pod をスクレイピングしています。

すべての Namespace にわたって特定範囲内の Pod に適用される水平コレクションを構成するには、ClusterPodMonitoring リソースを使用します。ClusterPodMonitoring リソースは PodMonitoring リソースと同じインターフェースを提供しますが、検出対象の Pod を特定の Namespace に制限しません。

注: targetLabels フィールドを追加することで、簡素化された Prometheus スタイルの再ラベル構成が提供されます。再ラベル付けを使用すると、取り込まれた時系列上でのラベルとして Pod ラベルを追加できます。必須のターゲット ラベルは上書きできません。これらのラベルの一覧については、prometheus_target リソースをご覧ください。

GKE で実行している場合は、次の操作が可能です。

  • サンプル アプリケーションによって取り込まれた指標をクエリするには、「Prometheus サービスからデータをクエリする」をご覧ください。
  • エクスポートされた指標のフィルタリングと prom-operator リソースの調整については、「マネージド コレクションに関するその他のトピック」をご覧ください。

タスク 5. prometheus バイナリをダウンロードする

  • 次のバケットから prometheus バイナリをダウンロードします。
git clone https://github.com/GoogleCloudPlatform/prometheus && cd prometheus git checkout v2.28.1-gmp.4 wget https://storage.googleapis.com/kochasoft/gsp1026/prometheus chmod a+x prometheus

タスク 6. prometheus バイナリを実行する

  1. プロジェクト ID を変数に保存します。
export PROJECT_ID=$(gcloud config get-value project)
  1. ゾーンを変数に保存します。これらの値は、prometheus バイナリを実行するときに使用されます。
export ZONE={{{project_0.default_zone | Zone}}}
  1. 次のコマンドを使用して、Cloud Shell で prometheus バイナリを実行します。
./prometheus \ --config.file=documentation/examples/prometheus.yml --export.label.project-id=$PROJECT_ID --export.label.location=$ZONE

prometheus バイナリが起動したら、コンソール UI でマネージド Prometheus に移動し、PromQL クエリ「up」を実行して、prometheus バイナリが使用可能であることを確認します(これを実行している localhost がインスタンス名として表示されます)。

タスク 7. ノード エクスポータをダウンロードして実行する

  1. Cloud Shell で新しいタブを開き、node_exporter コマンドを実行します。

  2. Cloud Shell ボックスでエクスポータをダウンロードして実行します。

wget https://github.com/prometheus/node_exporter/releases/download/v1.3.1/node_exporter-1.3.1.linux-amd64.tar.gz tar xvfz node_exporter-1.3.1.linux-amd64.tar.gz cd node_exporter-1.3.1.linux-amd64 ./node_exporter : 次の数ステップでは、node_exporter ツールが実行されているポートを使用して、prometheus の構成を変更します。

次のような出力が表示され、ノード エクスポータがポート 9100 で実行され、指標を公開していることがわかります。

ts=2023-03-01T10:27:17.262Z caller=node_exporter.go:199 level=info msg="Listening on" address=:9100 ts=2023-03-01T10:27:17.263Z caller=tls_config.go:195 level=info msg="TLS is disabled." http2=false

config.yaml ファイルを作成する

  1. Cloud Shell の 1 つ目のタブで実行中の prometheus バイナリを停止し、ノード エクスポータから指標を取得する新しい構成ファイルを作成します。
vi config.yaml
  1. 次の仕様で config.yaml ファイルを作成します。
global: scrape_interval: 15s scrape_configs: - job_name: node static_configs: - targets: ['localhost:9100']
  1. 作成した config.yaml ファイルをアップロードして、次の点を検証します。
export PROJECT=$(gcloud config get-value project) gsutil mb -p $PROJECT gs://$PROJECT gsutil cp config.yaml gs://$PROJECT gsutil -m acl set -R -a public-read gs://$PROJECT config.yaml が正しく構成されているか確認する
  1. 以下のコマンドを実行して、新しい構成ファイルを指定して prometheus を再実行します。
./prometheus --config.file=config.yaml --export.label.project-id=$PROJECT --export.label.location=$ZONE

エクスポータの次の統計情報を使用して、PromQL クエリでその数を確認します。

  1. Cloud Shell で、ウェブ プレビュー アイコンをクリックします。

web_preview

  1. [プレビュー ポートの変更] を選択してポートを 9090 に設定し、[変更してプレビュー] をクリックしてプレビューします。

PromQL クエリエディタで、接頭辞として「node_」を付けてクエリを記述します。これにより、グラフィック エディタで可視化するために選択できる指標の入力リストが表示されます。

  • 「node_cpu_seconds_total」はグラフィック データを提供します。

node_export

表示される他の指標を選択して、エクスポートされたデータを表示してみてください。

お疲れさまでした

このラボでは、GKE インスタンスをデプロイし、node-exporter を構成しました。次に、node-exporter から指標を取り込むように GMP バイナリを構成し、指標を表示しました。

次のステップと詳細情報

Google Cloud Managed Service for Prometheus の詳細については、こちらをご覧ください。

Google Cloud トレーニングと認定資格

Google Cloud トレーニングと認定資格を通して、Google Cloud 技術を最大限に活用できるようになります。必要な技術スキルとベスト プラクティスについて取り扱うクラスでは、学習を継続的に進めることができます。トレーニングは基礎レベルから上級レベルまであり、オンデマンド、ライブ、バーチャル参加など、多忙なスケジュールにも対応できるオプションが用意されています。認定資格を取得することで、Google Cloud テクノロジーに関するスキルと知識を証明できます。

マニュアルの最終更新日: 2024 年 4 月 16 日

ラボの最終テスト日: 2023 年 10 月 27 日

Copyright 2025 Google LLC. All rights reserved. Google および Google のロゴは Google LLC の商標です。その他すべての企業名および商品名はそれぞれ各社の商標または登録商標です。

始める前に

  1. ラボでは、Google Cloud プロジェクトとリソースを一定の時間利用します
  2. ラボには時間制限があり、一時停止機能はありません。ラボを終了した場合は、最初からやり直す必要があります。
  3. 画面左上の [ラボを開始] をクリックして開始します

シークレット ブラウジングを使用する

  1. ラボで使用するユーザー名パスワードをコピーします
  2. プライベート モードで [コンソールを開く] をクリックします

コンソールにログインする

    ラボの認証情報を使用して
  1. ログインします。他の認証情報を使用すると、エラーが発生したり、料金が発生したりする可能性があります。
  2. 利用規約に同意し、再設定用のリソースページをスキップします
  3. ラボを終了する場合や最初からやり直す場合を除き、[ラボを終了] はクリックしないでください。クリックすると、作業内容がクリアされ、プロジェクトが削除されます

このコンテンツは現在ご利用いただけません

利用可能になりましたら、メールでお知らせいたします

ありがとうございます。

利用可能になりましたら、メールでご連絡いたします

1 回に 1 つのラボ

既存のラボをすべて終了して、このラボを開始することを確認してください

シークレット ブラウジングを使用してラボを実行する

このラボの実行には、シークレット モードまたはシークレット ブラウジング ウィンドウを使用してください。これにより、個人アカウントと受講者アカウントの競合を防ぎ、個人アカウントに追加料金が発生することを防ぎます。