GSP1026

概要
このラボでは、Managed Service for Prometheus を使用して、エクスポータ経由で他のインフラストラクチャ ソースから指標を収集します。
目標
このラボでは、次の方法について学びます。
- GKE インスタンスをデプロイする
-
PodMonitoring
カスタム リソースと node-exporter
ツールを構成する
- GMP バイナリをローカルでビルドし、GKE インスタンスにデプロイする
- Prometheus 構成を適用して指標の収集を開始する
設定と要件
[ラボを開始] ボタンをクリックする前に
こちらの説明をお読みください。ラボには時間制限があり、一時停止することはできません。タイマーは、Google Cloud のリソースを利用できる時間を示しており、[ラボを開始] をクリックするとスタートします。
このハンズオンラボでは、シミュレーションやデモ環境ではなく実際のクラウド環境を使って、ラボのアクティビティを行います。そのため、ラボの受講中に Google Cloud にログインおよびアクセスするための、新しい一時的な認証情報が提供されます。
このラボを完了するためには、下記が必要です。
- 標準的なインターネット ブラウザ(Chrome を推奨)
注: このラボの実行には、シークレット モード(推奨)またはシークレット ブラウジング ウィンドウを使用してください。これにより、個人アカウントと受講者アカウント間の競合を防ぎ、個人アカウントに追加料金が発生しないようにすることができます。
- ラボを完了するための時間(開始後は一時停止できません)
注: このラボでは、受講者アカウントのみを使用してください。別の Google Cloud アカウントを使用すると、そのアカウントに料金が発生する可能性があります。
ラボを開始して Google Cloud コンソールにログインする方法
-
[ラボを開始] ボタンをクリックします。ラボの料金をお支払いいただく必要がある場合は、表示されるダイアログでお支払い方法を選択してください。
左側の [ラボの詳細] ペインには、以下が表示されます。
- [Google Cloud コンソールを開く] ボタン
- 残り時間
- このラボで使用する必要がある一時的な認証情報
- このラボを行うために必要なその他の情報(ある場合)
-
[Google Cloud コンソールを開く] をクリックします(Chrome ブラウザを使用している場合は、右クリックして [シークレット ウィンドウで開く] を選択します)。
ラボでリソースがスピンアップし、別のタブで [ログイン] ページが表示されます。
ヒント: タブをそれぞれ別のウィンドウで開き、並べて表示しておきましょう。
注: [アカウントの選択] ダイアログが表示されたら、[別のアカウントを使用] をクリックします。
-
必要に応じて、下のユーザー名をコピーして、[ログイン] ダイアログに貼り付けます。
{{{user_0.username | "Username"}}}
[ラボの詳細] ペインでもユーザー名を確認できます。
-
[次へ] をクリックします。
-
以下のパスワードをコピーして、[ようこそ] ダイアログに貼り付けます。
{{{user_0.password | "Password"}}}
[ラボの詳細] ペインでもパスワードを確認できます。
-
[次へ] をクリックします。
重要: ラボで提供された認証情報を使用する必要があります。Google Cloud アカウントの認証情報は使用しないでください。
注: このラボでご自身の Google Cloud アカウントを使用すると、追加料金が発生する場合があります。
-
その後次のように進みます。
- 利用規約に同意してください。
- 一時的なアカウントなので、復元オプションや 2 要素認証プロセスは設定しないでください。
- 無料トライアルには登録しないでください。
その後、このタブで Google Cloud コンソールが開きます。
注: Google Cloud のプロダクトやサービスにアクセスするには、ナビゲーション メニューをクリックするか、[検索] フィールドにサービス名またはプロダクト名を入力します。
Cloud Shell をアクティブにする
Cloud Shell は、開発ツールと一緒に読み込まれる仮想マシンです。5 GB の永続ホーム ディレクトリが用意されており、Google Cloud で稼働します。Cloud Shell を使用すると、コマンドラインで Google Cloud リソースにアクセスできます。
-
Google Cloud コンソールの上部にある「Cloud Shell をアクティブにする」アイコン
をクリックします。
-
ウィンドウで次の操作を行います。
- 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 にプリインストールされており、タブ補完がサポートされています。
- (省略可)次のコマンドを使用すると、有効なアカウント名を一覧表示できます。
gcloud auth list
- [承認] をクリックします。
出力:
ACTIVE: *
ACCOUNT: {{{user_0.username | "ACCOUNT"}}}
To set the active account, run:
$ gcloud config set account `ACCOUNT`
- (省略可)次のコマンドを使用すると、プロジェクト 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 バイナリを実行する
- プロジェクト ID を変数に保存します。
export PROJECT_ID=$(gcloud config get-value project)
- ゾーンを変数に保存します。これらの値は、prometheus バイナリを実行するときに使用されます。
export ZONE={{{project_0.default_zone | Zone}}}
- 次のコマンドを使用して、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. ノード エクスポータをダウンロードして実行する
-
Cloud Shell で新しいタブを開き、node_exporter
コマンドを実行します。
-
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 ファイルを作成する
- Cloud Shell の 1 つ目のタブで実行中の prometheus バイナリを停止し、ノード エクスポータから指標を取得する新しい構成ファイルを作成します。
vi config.yaml
- 次の仕様で
config.yaml
ファイルを作成します。
global:
scrape_interval: 15s
scrape_configs:
- job_name: node
static_configs:
- targets: ['localhost:9100']
- 作成した
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 が正しく構成されているか確認する
- 以下のコマンドを実行して、新しい構成ファイルを指定して prometheus を再実行します。
./prometheus --config.file=config.yaml --export.label.project-id=$PROJECT --export.label.location=$ZONE
エクスポータの次の統計情報を使用して、PromQL クエリでその数を確認します。
- Cloud Shell で、ウェブ プレビュー アイコンをクリックします。

- [プレビュー ポートの変更] を選択してポートを
9090
に設定し、[変更してプレビュー] をクリックしてプレビューします。
PromQL クエリエディタで、接頭辞として「node_」を付けてクエリを記述します。これにより、グラフィック エディタで可視化するために選択できる指標の入力リストが表示されます。
- 「node_cpu_seconds_total」はグラフィック データを提供します。

表示される他の指標を選択して、エクスポートされたデータを表示してみてください。
お疲れさまでした
このラボでは、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 の商標です。その他すべての企業名および商品名はそれぞれ各社の商標または登録商標です。