Node.js 用 Stackdriver Logging の設定

は、

Node.js アプリケーションから Stackdriver Logging にログを書き込むには、Bunyan または Winston プラグインを使用するか、Node.js 用 Stackdriver Logging クラウド クライアント ライブラリを直接使用します。

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

始める前に

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

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

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

    [リソースの管理] ページに移動

  3. プロジェクトに対して課金が有効になっていることを確認します。

    課金を有効にする方法について

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

    APIを有効にする

  5. Node.js 開発用に環境を準備します。

    Node.js 設定ガイドに移動

Bunyan を使用する場合

Bunyan Node.js のロギング ライブラリを提供しています。Bunyan 用 Stackdriver Logging プラグインによって、Stackdriver Logging を使用するための、簡単で、より高レベルのレイヤが公開されます。

プラグインのインストール

  1. Stackdriver Logging Bunyan プラグインを簡単にインストールするには、次のように npm を使用します。

    npm install --save @google-cloud/logging-bunyan
  2. プラグインをインポートして Bunyan の構成に追加します。

    const bunyan = require('bunyan');
    
    // Imports the Google Cloud client library for Bunyan
    const {LoggingBunyan} = require('@google-cloud/logging-bunyan');
    
    // Creates a Bunyan Stackdriver Logging client
    const loggingBunyan = new LoggingBunyan();
    
    // Create a Bunyan logger that streams to Stackdriver Logging
    // Logs will be written to: "projects/YOUR_PROJECT_ID/logs/bunyan_log"
    const logger = bunyan.createLogger({
      // The JSON payload of the log as it appears in Stackdriver Logging
      // will contain "name": "my-service"
      name: 'my-service',
      streams: [
        // Log to the console at 'info' and above
        {stream: process.stdout, level: 'info'},
        // And log to Stackdriver Logging, logging at 'info' and above
        loggingBunyan.stream('info'),
      ],
    });
    
    // Writes some log entries
    logger.error('warp nacelles offline');
    logger.info('shields at 99%');

プラグインの構成

Node.js 用 Stackdriver Logging クラウド クライアント ライブラリでサポートされるものと同じ構成オプションを使用して、Bunyan プラグインの動作をカスタマイズできます。これらのオプションは、プラグインのコンストラクタに渡される options オブジェクトに渡すことができます。

Winston を使用する場合

Winston Node.js ロギング ライブラリ用のプラグインを提供しています。Winston 用 Stackdriver Logging プラグインによって、Stackdriver Logging を使用するための、簡単で、より高レベルのレイヤが公開されます。

プラグインのインストール

  1. Stackdriver Logging Winston プラグインを簡単にインストールするには、次のように npm を使用します。

    npm install --save @google-cloud/logging-winston
  2. プラグインをインポートして Winston の構成に追加します。

    // winston 3 example.
    const winston = require('winston');
    
    // Imports the Google Cloud client library for Winston
    const {LoggingWinston} = require('@google-cloud/logging-winston');
    
    const loggingWinston = new LoggingWinston();
    
    // Create a Winston logger that streams to Stackdriver Logging
    // Logs will be written to: "projects/YOUR_PROJECT_ID/logs/winston_log"
    const logger = winston.createLogger({
      level: 'info',
      transports: [
        new winston.transports.Console(),
        // Add Stackdriver Logging
        loggingWinston,
      ],
    });
    
    // Writes some log entries
    logger.error('warp nacelles offline');
    logger.info('shields at 99%');

プラグインの構成

Node.js 用 Stackdriver Logging クラウド クライアント ライブラリによってサポートされるものと同じ構成オプションを使用して、Winston プラグインの動作をカスタマイズできます。これらのオプションは、プラグインのコンストラクタに渡される options オブジェクトに渡すことができます。

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

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

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

Google Cloud Platform での実行

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

App Engine

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

Node.js 用 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 と管理] でログ書き込み役割が付与されていることを確認してください。

Cloud Functions

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

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

Cloud Functions は、自動的に Stackdriver Logging を使用するように構成されています。

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

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

Bunyan を使用する場合:

// Imports the Google Cloud client library for Bunyan
const {LoggingBunyan} = require('@google-cloud/logging-bunyan');

// Creates a client
const loggingBunyan = new LoggingBunyan({
  projectId: 'your-project-id',
  keyFilename: '/path/to/key.json',
});

Winston を使用する場合:

// Imports the Google Cloud client library for Winston
const {LoggingWinston} = require('@google-cloud/logging-winston');

// Creates a client
const loggingWinston = new LoggingWinston({
  projectId: 'your-project-id',
  keyFilename: '/path/to/key.json',
});

ログの表示

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

ログビューアに移動

詳しくは、ログの表示をご覧ください。

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

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

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