チェックポイント
Set up resources in the first project
/ 20
Configure the export to BigQuery
/ 40
Create a logging metric
/ 40
Cloud Logging と Cloud Monitoring を構成、使用する
概要
このラボでは、Cloud Logging と Cloud Monitoring の一般的な構成と使用方法について学習します。
フィルタを使ってログを表示する方法や、BigQuery シンクにログをエクスポートする方法、ロギング指標を作成する方法を学びます。また、Cloud Monitoring を使って使用状況の指標を表示する方法やダッシュボードを作成する方法を学びます。
目標
このラボでは、次のタスクの実行方法について学びます。
-
さまざまなメカニズムのフィルタを使用してログを表示する。
-
ログエントリを除外し、ログ取り込みを無効にする。
-
ログをエクスポートし、エクスポートしたログでレポートを生成する。
-
ロギング指標を作成し、レポートを生成する。
-
Cloud Monitoring を使用してさまざまな Google Cloud プロジェクトをモニタリングする。
-
指標のダッシュボードを作成する。
設定と要件
各ラボでは、新しい Google Cloud プロジェクトとリソースセットを一定時間無料で利用できます。
-
Qwiklabs にシークレット ウィンドウでログインします。
-
ラボのアクセス時間(例:
1:15:00
)に注意し、時間内に完了できるようにしてください。
一時停止機能はありません。必要な場合はやり直せますが、最初からになります。 -
準備ができたら、[ラボを開始] をクリックします。
-
ラボの認証情報(ユーザー名とパスワード)をメモしておきます。この情報は、Google Cloud Console にログインする際に使用します。
-
[Google Console を開く] をクリックします。
-
[別のアカウントを使用] をクリックし、このラボの認証情報をコピーしてプロンプトに貼り付けます。
他の認証情報を使用すると、エラーが発生したり、料金の請求が発生したりします。 -
利用規約に同意し、再設定用のリソースページをスキップします。
Google Cloud Shell の有効化
Google Cloud Shell は、開発ツールと一緒に読み込まれる仮想マシンです。5 GB の永続ホーム ディレクトリが用意されており、Google Cloud で稼働します。
Google Cloud Shell を使用すると、コマンドラインで Google Cloud リソースにアクセスできます。
-
Google Cloud コンソールで、右上のツールバーにある [Cloud Shell をアクティブにする] ボタンをクリックします。
-
[続行] をクリックします。
環境がプロビジョニングされ、接続されるまでしばらく待ちます。接続した時点で認証が完了しており、プロジェクトに各自のプロジェクト ID が設定されます。次に例を示します。
gcloud は Google Cloud のコマンドライン ツールです。このツールは、Cloud Shell にプリインストールされており、タブ補完がサポートされています。
- 次のコマンドを使用すると、有効なアカウント名を一覧表示できます。
出力:
出力例:
- 次のコマンドを使用すると、プロジェクト ID を一覧表示できます。
出力:
出力例:
タスク 1. 1 つ目のプロジェクトでリソースを設定する
このタスクでは、1 つ目のプロジェクトの Google Cloud リソースを作成します。
Qwiklabs の [接続の詳細] セクションに 2 つのプロジェクトが表示されています。1 つ目のプロジェクトに、ログとモニタリング用指標データを生成する有効な Google Cloud リソースを設定します。
2 つ目のプロジェクトには、Monitoring アカウントの構成データが保存されます。
このタスクでは、必ずプロジェクト 1 で作業してください。
-
Cloud Shell をアクティブにしていない場合は、[Cloud Shell をアクティブにする] をクリックしてアクティブにしてください。プロンプトが表示されたら、[続行] をクリックします。
-
Cloud Shell で、設定コードを含むアーカイブをダウンロードして展開します。
-
Cloud Shell セッションの右上にある [エディタを開く] アイコンをクリックします。
-
プロンプトが表示されたら、[新しいウィンドウで開く] をクリックします。
-
stackdriver-lab フォルダを開き、linux_startup.sh ファイルを選択します。
-
# install logging agent
と# install monitoring agent
セクションを以下に置き換えます。
-
コードを貼り付けたら、それが適切にインデントされていることを確認します。
-
ファイルを保存します。
-
setup.sh
ファイルを開きます。 -
# create vms
セクションの--image
の後ろにある windows-server のイメージ バージョン(17 行目)を次のように更新します。
-
コードを貼り付けたら、それが適切にインデントされていることを確認します。
-
ファイルを保存します。
-
Cloud コンソールの右上で、[ターミナルを開く] をクリックします。
-
次のコマンドを実行します。
作成されるリソースには次のものが含まれます。
-
サービス アカウント(VM が使用する)。
-
ロールの割り当て(Monitoring への書き込み権限をサービス アカウントに付与する)。
-
Apache と Monitoring エージェントがインストールされた Linux VM。
-
Monitoring エージェントと Logging エージェントがインストールされた Windows VM。
-
Nginx がデプロイされた Google Kubernetes Engine クラスタ。
-
Pub/Sub のトピックとサブスクリプション。
-
次のようなメッセージが表示された場合は対応が必要です。
-
次のコマンドを実行して、セットアップ スクリプトのゾーンを新しいゾーンに置き換えます。
サービス アカウントとファイアウォールがすでに存在しているというエラーは無視してかまいません。
-
同じエラーが表示された場合は、別の Google Cloud ゾーンを選択して次のコマンドを実行します(
<YOUR_ZONE>
は新しく選択したゾーンに置き換えます)。
-
Linux と Windows 両方の VM が作成されたことを示す、次のような出力が返されることを確認します。
[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。
タスク 2. 1 つ目のプロジェクトでログを表示、フィルタする
このタスクでは、シンプルなフィルタで VM インスタンスのログを表示します。
ログの書き込みを行っているサービスを確認する
-
Google Cloud コンソールのホームページを開いていることを確認します。
-
プロジェクト 1 で作業していることを確認します。コンソールの情報パネルのプロジェクト ID が、ラボの接続の詳細パネルの GCP プロジェクト ID 1 と一致している必要があります。
-
ナビゲーション メニュー > [ロギング] > [ログ エクスプローラ] を選択して、Cloud Logging を表示します。プロンプトが表示されたら、通知を閉じます。
-
左側のパネルに [ログのフィールド] が表示されます。[RESOURCE TYPE] に、ログを作成している Google Cloud サービスがいくつか表示されます。
ここに表示されているサービスはすべてログエントリの書き込みを行っています。これらのログエントリがすべて右側の [クエリ結果] ペインに表示されます。クエリを使って、特定のログや、特定の基準を満たすログの結果を取得することもできます。
シンプルなフィルタで VM インスタンスのログを確認する
- [ログのフィールド] パネルの [RESOURCE TYPE] で、[VM インスタンス] をクリックします。
クリックすると、次のようになります。
- [ログのフィールド] パネルの内容が変わります。
INSTANCE ID
という名前の新しいフィールドが表示されます。このフィールドには、ログエントリを書きこんでいる VM インスタンスの ID がすべて表示されます。 - ページの上部にある [クエリ] ボックスには
resource.type="gce_instance"
が入力されています。これは、VM インスタンスのエントリだけがログに記録されて表示されるという意味です。 - [クエリ結果] ペインも自動的に更新されます(VM インスタンスのログエントリだけが表示されます)。
-
[INSTANCE ID] フィールドでインスタンス ID の 1 つを選択します。関連付けられた VM インスタンスのログが [クエリ結果] ペインに表示されます。
-
[クエリ] ボックスの内部をクリックします。これで編集できるようになります。
-
[クエリ] ボックスで、1 行目以外をすべて削除します。これで、
resource.type="gce_instance"
を含む 1 行目だけが表示された状態になります。 -
右上にある [クエリを実行] をクリックします。[クエリ結果] にすべての VM インスタンスのログエントリが表示されます。
-
ログパネルが以前の状態に戻ります。
-
[ログをストリーム](右上の [クエリを実行] ボタンの横)をクリックして、ログのストリーミングを有効にします。
-
バックグラウンド アクティビティでウェブサーバーに対して不正なリクエストが生成されるのに応じて、1~2 秒ごとに新しいログエントリが表示されます。
これで、Linux Apache サーバー上の全体的なウェブ アクティビティを表示できるようになります。
-
右上にある [ストリームを停止] をクリックして、ログのストリーミングを停止します。
-
Apache のアクセスログだけが表示されるように切り替えるため、[apache-access] というログ名を選択します([ログのフィールド] パネルにあり、右上の [ログ名] から選択できます)。Linux Apache サーバーへのリクエストを表すエントリが表示されます。
ここで、特定の Linux サーバーの全般的なシステム アクティビティを表示する方法を学びます。
-
[ログ名] プルダウンをクリックし、apache-access を選択して [クリア] ボタンをクリックします。
-
続けて [ログ名] プルダウンをクリックし、[syslog] を選択して、[適用] をクリックします。
[クエリ結果] ペインに syslog のエントリが表示されます。
タスク 3. ログのエクスポートを使用する
このタスクでは、BigQuery へのログのエクスポートを構成し、テストします。
Cloud Logging では、ログエントリが 30 日間保持されます。多くの場合、一部のログエントリの保持期間を延長する必要が生じます(さらにアーカイブされたログから高度なレポートを作成する必要が生じる場合もあります)。
Google Cloud が提供するメカニズムによって、Cloud Monitoring に取り込まれたすべてのログエントリを、複数のアーカイブ用シンク
にも書き込むことができます。
BigQuery へのエクスポートを構成する
-
Cloud Logging のエクスポート用ページに移動します(ナビゲーション メニュー > [ロギング] > [ログルーター])。
-
[シンクの作成] をクリックします。
-
[シンク名] に「
vm_logs
」と入力し、[次へ] をクリックします。 -
[シンクサービスの選択] で [BigQuery データセット] を選択します。
-
[BigQuery データセットを選択] で [新しい BigQuery データセットを作成する] を選択します。
-
[データセット ID] に「
project_logs
」と入力し、[データセットを作成] をクリックします。 -
[次へ] をクリックします。
-
[包含フィルタの作成] リストボックスに「
resource.type="gce_instance"
」と入力します。 -
[シンクを作成] をクリックします。ログルーターの [ログシンクの次のステップを作成] ページが再び表示されます(上部に「ログシンクを作成しました。データはすぐに利用可能になります。」というメッセージが表示される場合があります)。
Monitoring > Pub/Sub > Dataflow > BigQuery/Bigtable
の順に処理)。Cloud Storage にエクスポートする方法では、約 1 時間ごとにエントリがまとめて Cloud Storage オブジェクト内に書き込まれます。次に、Cloud HTTP ロード バランシングのログを BigQuery にエクスポートするよう設定します。
-
左側のナビゲーション メニューで [ログルーター] を選択してサービスのホームページに戻ります。
-
[シンクの作成] をクリックします。
-
[シンク名] に「
load_bal_logs
」と入力し、[次へ] をクリックします。 -
[シンクサービスの選択] で [BigQuery データセット] を選択します。
-
[BigQuery データセットを選択] で [project_logs] を選択します(これは先ほど実施したステップで作成した BigQuery データセットです)。
-
[次へ] をクリックします。
-
[包含フィルタの作成] リストボックスに「
resource.type="http_load_balancer"
」と入力します。 -
[シンクを作成] をクリックします。
-
ログシンクの [ログシンクの次のステップを作成] ページが表示されます。
-
左側のナビゲーション メニューで [ログルーター] を選択してサービスのホームページに戻ります。
[ログルーター] ページが表示され、先ほど作成したシンク(load_bal_logs
)を含む、シンクのリストが表示されます。
エクスポートされたログエントリを調査する
-
BigQuery を開きます(ナビゲーション メニュー > [BigQuery])。
-
[Cloud コンソールの BigQuery へようこそ] メッセージ ボックスが開きます。このメッセージ ボックスにはクイックスタート ガイドへのリンクと、UI の更新情報が表示されます。
-
[完了] をクリックします。
-
[エクスプローラ] セクションの左側のペインで、該当するプロジェクト(
qwiklabs-gcp-xxx
で始まるもの)をクリックすると、その下にproject_logs
データセットが表示されます。
次に、エクスポート時の書き込みでログエントリを保存できるように、BigQuery データセットに適切な権限が付与されていることを確認します。
-
project_logs
データセットの横のその他メニュー(「アクションを表示」)をクリックし、[開く] をクリックします。 -
コンソールの右上にある [共有] プルダウンをクリックし、[権限] を選択します。
-
データセットの権限のページで、サービス アカウントに BigQuery データ編集者のロールが付与されていることを確認します。
-
データセットの権限のパネルを閉じます。
-
project_logs
データセットを開き、エクスポートされたログのテーブルを確認します。テーブルは複数(エントリを受け取っているログの種類ごとに 1 つずつ)あります。 -
syslog_(1) テーブルをクリックし、[詳細] をクリックして行数とその他のメタデータを確認します。syslog_(1) テーブルが表示されていない場合は、ブラウザを更新してみてください。
-
[詳細] タブの [テーブル情報] にある [テーブル ID] に、完全なテーブル名が表示されます。このテーブル名をコピーします。
-
アーカイブされたログエントリの分析には、さまざまな種類のクエリを使用できます。たとえば、テーブル フィールドのサブセットを確認するには、以下のクエリをクエリ [エディタ] タブに貼り付けます(
qwiklabs-gcp-xx-xxxxxxxxxxx.project_logs.syslog_xxxxxxxx
を、前のステップでコピーしたテーブル名に置き換えます)。
- [実行] をクリックします。
任意のクエリを実行して、さまざまな分析情報を取得してみてください。
注: Cloud Logging では、ロギング ストレージへのエントリの取り込みに関する決定が行われる前に、受け取ったログエントリがエクスポートされます。そのため、シンクには新しいログエントリのみがエクスポートされます。その結果、エクスポート前に syslog エントリがすべて生成され、syslog_(1) テーブルが表示されない可能性があります。
次のようなコマンドを使用すると、Cloud Logging にすでに取り込まれているログエントリを抽出できます。gcloud logging read "resource.type=gce_instance AND logName=projects/[PROJECT_ID]/logs/syslog AND textPayload:SyncAddress" --limit 10 --format json
[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。
タスク 4. ロギング指標を作成する
このタスクでは、「アクセス拒否」のログエントリが生成されるウェブ リクエストが過剰に発生した場合のアラート生成に使用できる指標を作成します。
Cloud Monitoring では、特定のログエントリを受け取った場合にカスタム指標を作成できます。
- [ログ エクスプローラ] ページに戻ります(ナビゲーション メニュー > [ロギング] > [ログ エクスプローラ])。
-
[指標を作成](コンソールの右側)を選択し、フィルタに基づいてログの指標を作成します。
-
ログベースの指標エディタで、[指標タイプ] を [Counter] に設定します。
-
[詳細] セクションで、[ログベースの指標の名前] に「403s」と入力します。
-
[フィルタの選択] の [フィルタの作成] に、次のコマンドを入力します。
PROJECT_ID
は [GCP プロジェクト ID 1] のプロジェクト ID に置き換えます。
-
その他の項目はすべてデフォルトのままにします。
-
[指標を作成] をクリックします。
-
この指標は、このラボでダッシュボード作成の際に使用します。
[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。
タスク 5. モニタリング ダッシュボードを作成する
このタスクでは、Qwiklabs で作成した 2 つ目のプロジェクトに切り替え、Monitoring ワークスペースをセットアップします。
プロジェクトを切り替える
- Qwiklabs で作成されている 2 つ目のプロジェクトに切り替えます(Qwiklabs の [接続の詳細] にある [GCP プロジェクト ID 2] のプロジェクトを使用します)。コンソールの上部に現在のプロジェクト ID が表示されます。
- Cloud コンソールの上部にあるプロジェクト名をクリックし、[すべて] タブをクリックします。
-
切り替え先となる 2 つ目のプロジェクトをクリックします。Qwiklabs の [接続の詳細] にある [GCP プロジェクト ID 2] のプロジェクトであることを確認します。
-
[開く] をクリックします。
Monitoring ワークスペースの作成
Qwiklabs の GCP プロジェクトに関連付けられた Monitoring ワークスペースをセットアップします。次の手順に沿って、Monitoring を無料でお試しいただける新しいアカウントを作成します。
-
Google Cloud Platform Console で、[ナビゲーション メニュー] > [Monitoring] の順にクリックします。
-
ワークスペースがプロビジョニングされるまで待ちます。
Monitoring ダッシュボードが開いたら、ワークスペースの準備は完了です。
Cloud Monitoring ワークスペースに 1 つ目のプロジェクトを追加します。
-
左側のメニューで [設定] をクリックし、GCP プロジェクトのセクションで [GCP プロジェクトを追加] をクリックします。
-
このラボの一方のプロジェクトがモニタリング対象アカウントとして追加されています。もう一方のプロジェクトの横にあるボックスをオンにし、スコーピング プロジェクトの [Use this project as the scoping project] を選択し、[ADD PROJECTS] をクリックします。
-
[確認] をクリックします。
モニタリング ダッシュボードを作成する
-
左側のペインで [ダッシュボード] をクリックします。
-
[+ CREATE DASHBOARD] をクリックします。
-
上部の一般的なダッシュボード名を「
Example Dashboard
」に置き換えます。 -
[Line] をクリックします。
-
[Chart Title] で、グラフ名を「CPU usage」と入力します。
-
[Resource & Metric] で、[VM Instance] > [Instance] > [CPU usage] を選択します。
compute.googleapis.com/instance/cpu/usage_time
の形式であることを確認します。[適用] をクリックします。
Show only active resources and metrics
] の設定をオフに切り替えてください。-
[グラフを追加] をクリックします。
-
[Line] をクリックします。
-
グラフに
Memory Utilization
という名前を付け、[Resource & Metric] を [VM Instance] > [Memrory] > [Memory Utilization] に設定します。agent.googleapis.com/memory/percent_used
の形式であることを確認します。 -
[適用] をクリックします。
-
右上の[Enable auto-refresh] ボタン([ダッシュボードを編集] の横)をクリックして、リアルタイムの結果をグラフで表示します。
読み込みが完了したら、2 つのグラフ(1 つは CPU 使用率で、もう 1 つはメモリ使用率)にデータが表示されます。
これで、グラフでフィルタ、グループ化、集計などのオプションを編集できるようになりました。
お疲れさまでした
このラボでは、次の方法について学びました。
-
さまざまなメカニズムのフィルタを使用してログを表示する。
-
ログエントリを除外し、ログ取り込みを無効にする。
-
ログをエクスポートし、エクスポートしたログでレポートを生成する。
-
ロギング指標を作成し、レポートを生成する。
-
Cloud Monitoring を使用してさまざまな Google Cloud プロジェクトをモニタリングする。
-
指標のダッシュボードを作成する。
ラボを終了する
ラボが完了したら、[ラボを終了] をクリックします。ラボで使用したリソースが Google Cloud Skills Boost から削除され、アカウントの情報も消去されます。
ラボの評価を求めるダイアログが表示されたら、星の数を選択してコメントを入力し、[送信] をクリックします。
星の数は、それぞれ次の評価を表します。
- 星 1 つ = 非常に不満
- 星 2 つ = 不満
- 星 3 つ = どちらともいえない
- 星 4 つ = 満足
- 星 5 つ = 非常に満足
フィードバックを送信しない場合は、ダイアログ ボックスを閉じてください。
フィードバックやご提案の送信、修正が必要な箇所をご報告いただく際は、[サポート] タブをご利用ください。
Copyright 2020 Google LLC All rights reserved. Google および Google のロゴは Google LLC の商標です。その他すべての企業名および商品名はそれぞれ各社の商標または登録商標です。