arrow_back

ログベースの指標に基づくアラートの作成

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

ログベースの指標に基づくアラートの作成

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

GSP091

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

概要

ログベースの指標は、ログエントリの内容に基づく Cloud Monitoring の指標です。この指標は、トレンドを特定したり、ログから数値を抽出したりするうえで役立ちます。また、特定のイベントの指標を作成して、そのイベントのログエントリが発生するとトリガーされるアラートを設定することもできます。Cloud Monitoring では、システム定義とユーザー定義のログベースの指標を使用して、グラフとアラート ポリシーを作成できます。

ログベースの指標のインターフェースは、2 つの指標タイプ(システム定義とユーザー定義)のペインに分かれています。

システム定義のログベースの指標: Cloud Logging が提供しているもので、すべての Google Cloud プロジェクトで使用できます。Cloud Logging が取り込んだログのみから計算されます。取り込み対象から明示的に除外されているログは、これらの指標には含まれません。

ユーザー定義のログベースの指標: Google Cloud プロジェクト内のデータを追跡するためにユーザーが作成するものです。たとえば、特定のフィルタに一致するログエントリの数をカウントするログベースの指標を作成できます。

指標からアラートを作成することで、ログベースの指標に基づくアラート ポリシーを作成できます。

学習内容

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

  • ログベースのアラートを作成する。
  • ログベースの指標を作成する。
  • 指標に基づくアラートを作成する。
  • アラートをテストする。

設定と要件

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

こちらの説明をお読みください。ラボには時間制限があり、一時停止することはできません。タイマーは、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 クラスタをデプロイする

このタスクでは、Google Kubernetes Engine(GKE)クラスタをデプロイします。このクラスタは、後のタスクでログベースの指標に使用します。

  1. Cloud Shell で、このラボ環境用のゾーンを設定します。
gcloud config set compute/zone {{{ project_0.default_zone | "ZONE" }}}

プロンプトが表示されたら [承認] をクリックします。

  1. このラボ環境用のプロジェクト ID を設定します。
export PROJECT_ID=$(gcloud info --format='value(config.project)')
  1. 標準 GKE クラスタをデプロイします。
gcloud container clusters create gmp-cluster --num-nodes=1 --zone {{{ project_0.default_zone | "ZONE" }}}

クラスタがデプロイされると、gmp-cluster という名前のクラスタについて「STATUS: RUNNING」という出力が表示されます。

注: クラスタがデプロイされるまで数分かかることがあります。先にタスク 2 を完了してから、戻って以下のチェックを使用して進捗を確認することもできます。

[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。 GKE クラスタをデプロイする

タスク 2. ログベースのアラートを作成する

ログベースのアラートを使用すると、ログに特定のメッセージが出力されるたびに通知を受け取ることができます。VM が停止した場合に通知するようにログベースのアラートを設定してみましょう。

  1. Google Cloud コンソールのタイトルバーにある [検索] フィールドに「ログ エクスプローラ」と入力し、検索結果から [ログ エクスプローラ] をクリックします。

  2. 必要に応じて、[クエリを表示] スライドバーを有効にします。

  3. クエリ ウィンドウに次のパラメータをコピーして貼り付け、ログベースのアラートを作成します。

resource.type="gce_instance" protoPayload.methodName="v1.compute.instances.stop"
  1. [操作](結果セクションの上)から [ログアラートの作成] をクリックします。

  2. 次のパラメータを追加し、値を追加するごとに [次へ] をクリックすると、次のセクションが表示されます。

  • Alert policy name: stopped vm
  • Choose logs to include in the alert: このセクションには、前に入力したクエリが自動で入力されます。
  • Set notification frequency and autoclose duration: [通知の間隔] は 5分、[インシデントの自動クローズ期間] は 1時間を選択します。
  1. [次へ] をクリックします。

  2. [Who should be notified?] については以下を行います。

  • [通知チャンネル] の横にあるプルダウン矢印をクリックし、[Manage Notification Channels] をクリックします([通知チャンネル] ページが新しいタブで開きます)。
  • ページを下方向にスクロールし、[Email] で [Add new] をクリックします。
  • [Email Address] フィールドにメールアドレス、[Display Name] に表示名を入力します。メールを確認したい場合は個人メールアドレスを使用します。ラボのユーザー名()を使用することもできますが、この場合はメールは確認できません。
  • [Save] をクリックします。
  1. ページ上部の [X] を使用して [通知チャンネル] ページを閉じると、前に開いていたログ エクスプローラのタブに戻ります。
  • 通知チャンネルを更新してから、作成したチャンネルを選択します。[OK] をクリックします。
  1. [Save] をクリックします。

[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。 ログベースのアラートを作成する

ログベースのアラートをテストする

このログベースのアラートをテストするには、VM を停止し、Logging でアラートが登録されているかどうかを確認します。

  1. Google Cloud コンソールで新しいブラウザタブを開き、ナビゲーション メニュー > [Compute Engine] > [VM インスタンス] に移動します。

  2. instance1 の横のチェックボックスをオンにして、ページ上部の [停止] をクリックします。ポップアップ ウィンドウでもう一度 [停止] をクリックします。

    この処理には少し時間がかかる場合があります。インスタンスが停止すると、緑色のチェックマークが灰色の円に変わります。

  3. コンソールのタイトルバーにある [検索] フィールドに「Monitoring」と入力し、検索結果から [Monitoring(インフラストラクチャとアプリケーションの品質チェック)] を選択します。

  4. 左側のペインの [検出] から [ロギング] を、さらに [検出] から [アラート] をクリックします。

    アラートが登録されているのを確認できます。

  5. [ポリシー] で [See all policies] をクリックすると、[stopped vm] という名前のログベースのアラートが表示されます。

タスク 3. Docker リポジトリを作成する

このセクションでは、Artifact Registry 内に非公開 Docker リポジトリを作成し、その非公開リポジトリにイメージを追加します。リポジトリ名でイメージにタグを付け、宛先を指定して Artifact Registry に push する必要があります。

  1. Cloud Shell で次のコマンドを実行して、ロケーション docker-repo という名前の新しい Docker リポジトリを作成し、「Docker repository」という説明を加えます。
gcloud artifacts repositories create docker-repo --repository-format=docker \ --location={{{project_0.default_region | Region}}} --description="Docker repository" \ --project={{{project_0.project_id| Project ID}}}
  1. コンソールのタイトルバーにある [検索] フィールドに「Artifact Registry」と入力し、検索結果から [Artifact Registry] をクリックします。

  2. Artifact Registry の [リポジトリ] ページで、リポジトリ docker-repo が表示されていることを確認します。

  3. Cloud Shell で、ストレージ バケットからビルド済みイメージを読み込みます。

wget https://storage.googleapis.com/spls/gsp1024/flask_telemetry.zip unzip flask_telemetry.zip docker load -i flask_telemetry.tar
  1. 次のコマンドを実行して、イメージに flask-telemetry:v1 というタグを付けます。
docker tag gcr.io/ops-demo-330920/flask_telemetry:61a2a7aabc7077ef474eb24f4b69faeab47deed9 \ {{{project_0.default_region | Region}}}-docker.pkg.dev/{{{project_0.project_id| Project ID}}}/docker-repo/flask-telemetry:v1
  1. 次のコマンドを実行して、Docker イメージを Artifact Registry に push します。
docker push {{{project_0.default_region | Region}}}-docker.pkg.dev/{{{project_0.project_id| Project ID}}}/docker-repo/flask-telemetry:v1

[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。 Docker リポジトリを作成する

タスク 4. 指標を出力するシンプルなアプリケーションをデプロイする

ログベースの指標を使用すると、ログ内のエラーを追跡する指標を定義できます。この指標を活用して、類似の問題や現象が発生したときに、エンドユーザーが気付く前に事前に対応できます。

  1. 次のコマンドを実行し、タスク 1 でデプロイしたクラスタが完全にプロビジョニングされていることを確認します。
gcloud container clusters list 注: クラスタのステータスが「PROVISIONING」の場合は、少し待ってから上記のコマンドを再び実行します。これを繰り返し、ステータスが「RUNNING」になったら次の手順に進みます。
  1. クラスタを認証します。
gcloud container clusters get-credentials gmp-cluster

次のメッセージが表示されます。

Fetching cluster endpoint and auth data. kubeconfig entry generated for gmp-cluster.
  1. 作業を行う Namespace を作成します。
kubectl create ns gmp-test
  1. /metrics エンドポイントに指標を出力するアプリケーションを取得します。
wget https://storage.googleapis.com/spls/gsp1024/gmp_prom_setup.zip unzip gmp_prom_setup.zip cd gmp_prom_setup
  1. このステップでは、前のステップで push したイメージの名前を使用するように flask_deployment.yaml を更新します。

    • nano を使用して flask_deployment.yaml を開きます。
    nano flask_deployment.yaml
    • <ARTIFACT REGISTRY IMAGE NAME> は次のように置き換えます。
    {{{project_0.default_region | Region}}}-docker.pkg.dev/{{{project_0.project_id| Project ID}}}/docker-repo/flask-telemetry:v1
    • Ctrl+X、Y、Enter キーを順に押して、更新したファイルを保存し、nano を閉じます。
  2. 以下のコマンドを実行して、/metrics エンドポイントに指標を出力するシンプルなアプリケーションをデプロイします。

kubectl -n gmp-test apply -f flask_deployment.yaml kubectl -n gmp-test apply -f flask_service.yaml
  1. Namespace の準備ができて指標が出力されていることを確認します。
kubectl get services -n gmp-test

次の出力が表示されます。

NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE hello LoadBalancer 10.0.12.114 34.83.91.157 80:32058/TCP 71s

[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。 指標を出力するシンプルなアプリケーションをデプロイする

  1. External-IP のアドレスが入力されるまでコマンドを再実行します。

  2. 次のコマンドを実行して、Python Flask アプリが指標を出力していることを確認します。

curl $(kubectl get services -n gmp-test -o jsonpath='{.items[*].status.loadBalancer.ingress[0].ip}')/metrics

次の出力が表示されます。

# HELP flask_exporter_info Multiprocess metric # TYPE flask_exporter_info gauge flask_exporter_info{version="0.18.5"} 1.0

タスク 5. ログベースの指標を作成する

  1. [ログ エクスプローラ] に戻ります。

  2. [操作] で [指標の作成] リンクをクリックします。

  3. [ログベースの指標の作成] ページで、以下の情報を入力します。

  • 指標タイプ: デフォルト設定のままにします([Counter])。
  • ログベースの指標の名前: hello-app-error
  • フィルタの選択: 次の情報で [フィルタの作成] ウィンドウを更新します。
severity=ERROR resource.labels.container_name="hello-app" textPayload: "ERROR: 404 Error page not found"
  1. [指標を作成] をクリックします。

[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。 ログベースの指標を作成する

タスク 6. 指標に基づくアラートを作成する

  1. [ロギング] の左のサイドメニューで、[構成] から [ログベースの指標] をクリックします。

  2. [ユーザー定義の指標] で [hello-app-error] の その他の操作アイコン(その他の操作アイコン)をクリックし、[指標に基づいて通知を作成する] を選択します。

  3. [Select a Metric] で、指標パラメータが自動的に入力されます。

  • ローリング ウィンドウを [2分] に更新します。
  • その他はデフォルト設定のままにします。
  • [Next] を 2 回クリックします。
  1. このラボで作成したチャンネルを使用して通知を設定します。

  2. アラート ポリシーを「log based metric alert」という名前にします。

  3. [ポリシーを作成] をクリックします。

[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。 指標に基づくアラートを作成する

タスク 7. エラーを生成する

次に、作成したログベースの指標に合致するエラーを生成し、指標に基づくアラートをトリガーします。

  1. Cloud Shell で、以下のコマンドを実行してエラーを生成します。
timeout 120 bash -c -- 'while true; do curl $(kubectl get services -n gmp-test -o jsonpath='{.items[*].status.loadBalancer.ingress[0].ip}')/error; sleep $((RANDOM % 4)) ; done'
  1. [ログ エクスプローラ] ページに戻り、左下の [重大度] に移動します。

  2. [エラー] をクリックします。

    ここで、「404 Error page not found」エラーを探すことができます。404 エラー メッセージの一つを開いて、詳細な情報を表示します。

  3. [Monitoring] ページに戻り、[アラート] をクリックします。

    作成した 2 つのポリシーが表示されます。

  4. [Alert policies] で [View all] をクリックします。

    [インシデント] セクションに両方のアラートが表示されるはずです。

  5. インシデントをクリックして詳細を確認します。

注: ログベースの指標のアラートは、最終的には自動的に解決されます。調査の時間がもっと必要な場合は、エラーを生成するコードを再度実行し、アラートがもう一度トリガーされるのを待ちます。

[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。 エラーを生成する

お疲れさまでした

このラボでは、ログベースのアラート、システム定義のログベースの指標、ユーザー定義のログベースの指標、指標に基づくアラートを作成しました。また、アラートをトリガーするためにエラーを生成しました。最後に、インシデントとアラートの詳細を確認する方法について学習しました。

次のステップと詳細情報

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

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

マニュアルの最終更新日: 2025 年 4 月 21 日

ラボの最終テスト日: 2025 年 4 月 18 日

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

始める前に

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

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

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

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

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

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

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

ありがとうございます。

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

1 回に 1 つのラボ

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

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

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