Ruby 用 Stackdriver Logging の設定

は、

Ruby 用 Stackdriver Logging ライブラリを使用するか、Ruby 用 Stackdriver Logging クラウド クライアント ライブラリを直接使用して、Ruby アプリケーションから Stackdriver Logging にログを書き込むことができます。

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

始める前に

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

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

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

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

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

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

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

    APIを有効にする

  5. Ruby 2.2+ 以上をインストールします。

ライブラリのインストール

Google が提供する Ruby 用 Stackdriver Logging ライブラリでは、ラックベース Ruby ウェブ フレームワーク向けに、使いやすいロガー実装が公開されています。

  1. Gemfile に Stackdriver gem を追加します。

    gem "stackdriver"
  2. Bundler を使用して gem をインストールします。

    bundle install
    

ライブラリの有効化

Ruby on Rails を使用している場合は、Bundler が起動するときにライブラリが自動的にアプリケーションに読み込まれ、デフォルトの Rails.logger が Stackdriver Logging ロガーのインスタンスに設定されます。

他のラックベースのアプリケーションでは、ウェブ フレームワークでラックロガーがサポートされる場合、ラック ミドルウェアを使用して、ラックロガーを Stackdriver Logging ロガーに置き換えることができます。

require "google/cloud/logging"

use Google::Cloud::Logging::Middleware

ライブラリの構成

Ruby 用 Stackdriver Logging ライブラリの動作はカスタマイズできます。構成可能なオプションのリストについては、ライブラリの構成をご覧ください。

Stackdriver Logging ロガーの使用

Ruby 用 Stackdriver Logging ライブラリを有効にすると、アプリケーションでロガーを使用できます。

logger.info "Hello World!"
logger.error "Oh No!"

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

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

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

Google Cloud Platform での実行

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

App Engine

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

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

*Ruby on Rails 構成インターフェースの使用:

Ruby on Rails フレームワークを使用している場合は、Ruby on Rails 構成インターフェースを介してパラメータを指定します。

# Add this to config/environments/*.rb
Rails.application.configure do |config|
  # Stackdriver Logging specific parameters
  config.google_cloud.logging.project_id = "YOUR-PROJECT-ID"
  config.google_cloud.logging.keyfile    = "/path/to/service-account.json"
end

次のコマンドを使用して、すべての Stackdriver gem の共有構成を設定することもできます。

# Add this to config/environments/*.rb
Rails.application.configure do |config|
  # Stackdriver Shared parameters
  config.google_cloud.project_id = "YOUR-PROJECT-ID"
  config.google_cloud.keyfile    = "/path/to/service-account.json"
end

Rails を本番環境で稼働する場合、ロギングはデフォルトで有効になります。開発モードでロギングを有効にするには、次のとおり追加します。

# Add this to config/environments/development.rb
Rails.application.configure do |config|
  config.google_cloud.use_logging = true
end

インストルメンテーション構成インターフェースの使用:

その他のラックベースのアプリケーションで使用する場合は、構成インターフェースを介してパラメータを指定します。

require "google/cloud/logging"

Google::Cloud.configure do |config|
  # Stackdriver Logging specific parameters
  config.logging.project_id = "YOUR-PROJECT-ID"
  config.logging.keyfile    = "/path/to/service-account.json"
end

次のコマンドを使用して、すべての Stackdriver gem の共有構成を設定することもできます。

require "stackdriver"

Google::Cloud.configure do |config|
  # Stackdriver Shared parameters
  config.project_id = "YOUR-PROJECT-ID"
  config.keyfile    = "/path/to/service-account.json"
end

ログの表示

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

ログビューアに移動

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

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

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

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