gcloud CLI を使用したログエントリの書き込みとクエリ
このドキュメントでは、Cloud Logging のいくつかの機能を紹介し、以下の内容の実行方法について説明します。
- Google Cloud CLI を使用してログエントリを書き込む。
- gcloud CLI を使用してログエントリをリスト表示する。
- Logging API を使用してログエントリをリスト表示する。
- ログ エクスプローラを使用してログエントリを表示、クエリする。
始める前に
このクイックスタートを完了するには、課金が有効になっている Trusted Cloud プロジェクトが必要です。 Trusted Cloud プロジェクトがない場合、または Trusted Cloud プロジェクトに対して課金が有効になっていない場合は、次の操作を行います。-
Install the Google Cloud CLI.
-
Configure the gcloud CLI to use your federated identity.
For more information, see Sign in to the gcloud CLI with your federated identity.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
Create or select a Trusted Cloud project.
-
Create a Trusted Cloud project:
gcloud projects create PROJECT_ID
Replace
PROJECT_ID
with a name for the Trusted Cloud project you are creating. -
Select the Trusted Cloud project that you created:
gcloud config set project PROJECT_ID
Replace
PROJECT_ID
with your Trusted Cloud project name.
-
-
Make sure that billing is enabled for your Trusted Cloud project.
gcloud CLI を使用してログエントリを書き込む
Logging では、構造化データを含むログエントリと非構造化データを含むログエントリがサポートされています。構造化データは、JSON データ構造で構成されます。例: {"weather": "partly cloudy"}
。非構造化データは文字列です。例: "A simple entry"
。
次の手順では、gcloud CLI を使用して、非構造化データを含むログエントリと構造化データを含むログエントリを書き込みます。gcloud CLI は、Cloud Logging API へのコマンドライン インターフェースを提供します。
非構造化データを含むログエントリをログ
my-test-log
に書き込みます。gcloud logging write
コマンドを実行します。gcloud logging write my-test-log "A simple entry."
コマンドが完了すると、次のメッセージが表示されます。
Created log entry
。構造化データを含むログエントリをログ
my-test-log
に書き込みます。gcloud logging write --payload-type=json my-test-log '{ "message": "My second entry", "weather": "partly cloudy"}'
構造化データを含むログエントリを書き込む場合は、
--payload-type=json
を含める必要があります。このフィールドを省略すると、Logging はペイロードを非構造化データとして解釈します。
ログ my-test-log
が存在しない場合、ログエントリの受信時にログが作成されます。
gcloud CLI を使用してログエントリをリスト表示する
gcloud CLI を使用して、Logging からログエントリを取得して表示できます。たとえば、リソースタイプが global
のログエントリを取得して表示するには、次のコマンドを実行します。
gcloud logging read "resource.type=global"
このコマンドは次のような結果を返します。
---
insertId: jpj9zjf73t1mn
jsonPayload:
message: My second entry
weather: partly cloudy
logName: projects/myloggingproject/logs/my-test-log
receiveTimestamp: '2018-11-01T18:39:31.114507977Z'
resource:
labels:
project_id: myloggingproject
type: global
timestamp: '2018-11-01T18:39:31.114507977Z'
---
insertId: vd4m1if7h7u1a
logName: projects/myloggingproject/logs/my-test-log
receiveTimestamp: '2018-11-01T18:39:19.718100792Z'
resource:
labels:
project_id: myloggingproject
type: global
textPayload: A simple entry
timestamp: '2018-11-01T18:39:19.718100792Z'
ログの読み取りの詳細については、gcloud logging read
リファレンス ドキュメントをご覧ください。
ログ エクスプローラでログエントリを表示する
Trusted Cloud コンソールでログエントリを表示するには、ログ エクスプローラを使用します。ほとんどの Trusted Cloud プロジェクトは多数のログを保存しています。クエリを作成することで、特定のログエントリを選択できます。
ログ エクスプローラを使用して書き込んだログエントリを表示するには、次の操作を行います。
-
Trusted Cloud コンソールで、[ログ エクスプローラ] ページに移動します。
検索バーを使用してこのページを検索する場合は、小見出しが [Logging] の結果を選択します。
Trusted Cloud by S3NSナビゲーション バーで Trusted Cloud プロジェクトが選択されていることを確認します。必要に応じて、 Trusted Cloud プロジェクトのプルダウン リストを使用して Trusted Cloud プロジェクトを選択します。
[リソース] メニューで [グローバル] を選択します。
[グローバル] メニュー オプションが表示されない場合や、該当するログエントリが表示されない場合は、数分待ってからページを更新します。Logging でログエントリが受信されるまでに数分かかることがあります。
ログエントリの詳細を表示するには、その chevron_right [メニュー] をクリックします。
1 つ目のログエントリのデータは
textPayload
に格納されています。2 つ目のログエントリには構造化データが含まれているため、データがjsonPayload
に格納されています。構造化ペイロードにはmessage
とweather
というキーが含まれています。
ログエントリのデータ形式の詳細については、LogEntry
タイプをご覧ください。
ログ エクスプローラのクエリログ エントリ
クエリエディタと、構造化ログではキーと値を使用してログエントリをクエリできます。たとえば、テキスト simple
を含むすべてのログエントリを表示するには次のようにします。
-
Trusted Cloud コンソールで、[ログ エクスプローラ] ページに移動します。
検索バーを使用してこのページを検索する場合は、小見出しが [Logging] の結果を選択します。
[リソース] メニューで [グローバル] を選択します。
クエリエディタで、文字列
simple
を引用符で囲んで入力します。ログにはログエントリA simple entry.
のみが表示されます。ログを表示したら、追加したクエリ文字列を削除して、[クエリを実行] をクリックします。両方のログエントリが画面に再表示されます。
キー weather
を持ち、value
フィールドに partly
が含まれる構造化データを含むすべてのログエントリを表示するには、次のようにします。
クエリエディタには、
resource.type="global"
という行が含まれます。次のコマンドを入力します。jsonPayload.weather:partly
[クエリを実行] をクリックします。結果は
My second entry
の単一のログエントリです。
ログ エクスプローラでは、保存したクエリ、おすすめのクエリ、最近のクエリも使用できます。 クエリの詳細については、ログ エクスプローラでクエリを作成するをご覧ください。
サンプルクエリについては、ログ エクスプローラを使用したサンプルクエリをご覧ください。
トラブルシューティング
入力ミスや不明なフィールド名がある場合は、gcloud CLI コマンドが無効な引数のメッセージを返して終了します。たとえば、
resource.type
でピリオドを忘れたとすると、次のエラーが発生します。ERROR: (gcloud.logging.read) INVALID_ARGUMENT: Field not found: 'resourcetype'.
Cloud Logging に必要なアクセス権限が付与されていない場合、gcloud CLIのコマンドが権限がありませんのメッセージを返して終了します。たとえば、Compute Engine VM インスタンスがデフォルトの API 設定で構成されている場合、
list
コマンドは権限拒否エラーで終了します。ERROR: (gcloud.logging.read) PERMISSION_DENIED: Request had insufficient authentication scopes.
この状態を解決するには、Compute Engine VM インスタンスの権限を変更して、Cloud Logging に読み取り権限を付与します。
- VM インスタンスの [VM インスタンスの詳細] ページに移動します。[停止] をクリックします。完了までに 1~2 分かかることがあります。
- 構成を変更するには、[編集] をクリックします。
- [Cloud API アクセス スコープ] という見出しを見つけて、[詳細] をクリックします。各 API の設定が表示されます。Cloud Logging API のエントリを [フル] に変更して、[保存] をクリックします。
- VM インスタンスを再起動するには、[開始] をクリックします。しばらくすると、VM を使用できるようになります。
クリーンアップ
このページで使用したリソースについて、 Trusted Cloud アカウントに課金されないようにするには、リソースを含む Trusted Cloud プロジェクトを削除します。
(オプション)作成したログエントリを削除するには、次の
gcloud
コマンドを実行します。gcloud logging logs delete my-test-log
ログエントリを削除しない場合、ログエントリは期限切れとなり削除されます。保持情報については、割り当てと制限をご覧ください。
次のステップ
- Logging のコマンドライン インターフェースの詳細については、
gcloud logging
コマンド グループをご覧ください。 - Logging API に関するドキュメントについては、Cloud Logging API を参照してください。
- ログ エクスプローラの詳細については、ログ エクスプローラの使用をご覧ください。