Go 用 Stackdriver Logging の設定

標準のライブラリ互換ロギング パッケージを提供しています。Go 用 Stackdriver Logging ライブラリによって、Stackdriver Logging を使用するための、高レベルのレイヤが公開されます。

Go 用 Stackdriver Logging ライブラリを Compute Engine VM インスタンスで使用するために、Stackdriver Logging エージェントをインストールする必要はありません。

始める前に

  1. Google アカウントにログインします。

    Google アカウントをまだお持ちでない場合は、新しいアカウントを登録します。

  2. GCP プロジェクトを選択または作成します。

    プロジェクト セレクタのページに移動

  3. Google Cloud Platform プロジェクトに対して課金が有効になっていることを確認します。 詳しくは、課金を有効にする方法をご覧ください。

  4. Stackdriver Logging API を有効にします。

    APIを有効にする

パッケージのインストール

go get -u cloud.google.com/go/logging

Go ロガーの使用

// Sample stdlogging writes log.Logger logs to the Stackdriver Logging.
package main

import (
	"log"

	// Imports the Stackdriver Logging client package.
	"cloud.google.com/go/logging"
	"golang.org/x/net/context"
)

func main() {
	ctx := context.Background()

	// Sets your Google Cloud Platform project ID.
	projectID := "YOUR_PROJECT_ID"

	// Creates a client.
	client, err := logging.NewClient(ctx, projectID)
	if err != nil {
		log.Fatalf("Failed to create client: %v", err)
	}
	defer client.Close()

	// Sets the name of the log to write to.
	logName := "my-log"

	logger := client.Logger(logName).StandardLogger(logging.Info)

	// Logs "hello world", log entry is visible at
	// Stackdriver Logs.
	logger.Println("hello world")
}

インストールの詳細については、Go 用 Stackdriver Logging ライブラリのドキュメントをご覧ください。また、公開バグトラッカーを使用して問題を報告することもできます。

Cloud クライアント ライブラリを直接使用する

Go 用 Stackdriver Logging Cloud クライアント ライブラリを直接使用する方法の詳細については、Stackdriver Logging クライアント ライブラリをご覧参ください。

Google Cloud Platform での実行

Go 用 Stackdriver Logging ライブラリを使用するには、GCP で Cloud IAM ログ書き込み役割を設定する必要があります。ほとんどの GCP 環境で、デフォルトでこの役割は付与されています。

App Engine

App Engine では、デフォルトでログ書き込み役割が付与されます。

Go 用 Stackdriver Logging ライブラリは、明示的に認証情報を提示しなくても使用できます。

App Engine のアプリケーションでは、Stackdriver Logging が自動的に有効になります。特別な設定は必要ありません。

Google Kubernetes Engine

Google Kubernetes Engine では、クラスタの作成時に logging.write アクセス スコープを追加する必要があります。

gcloud container clusters create example-cluster-name --scopes https://www.googleapis.com/auth/logging.write

Compute Engine

Compute Engine VM インスタンスを使用する場合は、各インスタンスに cloud-platform アクセス スコープを追加します。Google Cloud Platform Console で新しいインスタンスを作成する場合は、[インスタンスの作成] パネルの [ID と API へのアクセス] セクションで行うことができます。Compute Engine のデフォルト サービス アカウントまたは別のサービス アカウントを使用し、[ID と API へのアクセス] セクションの [すべての Cloud API に完全アクセス権を許可] を選択します。どのサービス アカウントを選択する場合でも、GCP Console の [IAM と管理] でログ書き込み役割が付与されていることを確認してください。

ローカルやその他の場所での実行

GCP の外部で Go 用 Stackdriver Logging ライブラリを使用するには、GCP プロジェクト ID と適切なサービス アカウント認証情報を Go 用 Stackdriver Logging ライブラリに直接指定する必要があります。独自のワークステーション、データセンターのコンピュータ、または別のクラウド プロバイダの VM インスタンスでエージェントを実行する場合に、このことが該当します。詳細については、サービス アカウントの認証情報を手動で取得して指定するをご覧ください。

ログの表示

デプロイ後、GCP Console のログビューアでログを表示できます。

ログビューアに移動

ログビューアでは 1 つ以上のリソースを指定する必要がありますが、どのリソースを選択すべきかを判断するのが難しい場合もあります。その場合は、次のヒントを参考にしてください。

  • アプリケーションを App Engine にデプロイしている場合や、App Engine 固有のライブラリを使用している場合は、リソースを GAE アプリケーションに設定します。

  • アプリケーションを Compute Engine にデプロイしている場合は、リソースを GCE VM インスタンスに設定します。

  • アプリケーションを Google Kubernetes Engine にデプロイしている場合は、クラスタのロギング構成に応じてログエントリのリソースタイプが異なります。従来の Stackdriver と Stackdriver Kubernetes Monitoring ソリューションの詳細とこれらのオプションがリソースタイプに与える影響については、Stackdriver Kubernetes Monitoring への移行をご覧ください。

  • アプリケーションが Stackdriver Logging API を直接使用している場合、リソースは API と構成に依存します。たとえば、アプリケーションでリソースを指定することも、デフォルトのリソースを使用することもできます。

  • ログビューアにログが表示されていないときに、すべてのログエントリを表示するには、高度なフィルタモードに切り替えて空のフィルタを使用します。

    1. 高度なフィルタモードに切り替えるには、ログビューアの上部にあるメニュー(▾)をクリックして、[高度なフィルタに変換] を選択します。
    2. フィルタ ボックスに表示されているコンテンツをクリアします。
    3. [フィルタを送信] をクリックします。

    個々のエントリを調べてリソースを特定します。

詳細については、ログの表示高度なログフィルタをご覧ください。

このページは役立ちましたか?評価をお願いいたします。

フィードバックを送信...

ご不明な点がありましたら、Google のサポートページをご覧ください。