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 Console のプロジェクト セレクタのページで、GCP プロジェクトを選択または作成します。

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

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

  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 のログビューアでログを表示できます。

ログビューアに移動

ログビューアでは 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 のサポートページをご覧ください。