Ruby 用 Cloud Logging ライブラリを使用するか、Ruby 用 Cloud Logging クラウド クライアント ライブラリを直接使用して、Ruby アプリケーションから Cloud Logging にログを書き込むことができます。
Ruby 用 Cloud Logging ライブラリを Compute Engine VM インスタンスで使用するために、Cloud Logging エージェントをインストールする必要はありません。
始める前に
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Cloud Logging API.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Cloud Logging API.
- Ruby 2.2 以降をインストールします。
ライブラリのインストール
Google が提供する Ruby 用 Cloud Logging ライブラリでは、ラックベース Ruby ウェブ フレームワーク向けに、使いやすいロガー実装が公開されています。
Gemfile に Google Cloud Observability gem を追加します。
Bundler を使用して gem をインストールします。
bundle install
ライブラリの有効化
Ruby on Rails を使用している場合、Bundler が起動するときにライブラリがアプリケーションに自動的に読み込まれ、デフォルトの Rails.logger
が Cloud Logging ロガーのインスタンスに設定されます。
他のラックベースのアプリケーションでは、ウェブ フレームワークでラックロガーがサポートされる場合、ラック ミドルウェアを使用して、ラックロガーを Cloud Logging ロガーに置き換えることができます。
ライブラリの構成
Ruby 用 Cloud Logging ライブラリの動作をカスタマイズできます。構成可能なオプションのリストについては、ライブラリの構成をご覧ください。
Cloud Logging ロガーの使用
Ruby 用 Cloud Logging ライブラリが有効になったら、アプリケーションでロガーを使用できます。
logger.info "Hello World!"
logger.error "Oh No!"
インストールの詳細については、Ruby 用 Cloud Logging ライブラリのドキュメントをご覧ください。公開バグトラッカーを使用して問題を報告することもできます。
Cloud Logging クライアント ライブラリを使用してログを書き込む
Ruby 用 Cloud Logging クライアント ライブラリを直接使用する方法については、Cloud Logging クライアント ライブラリをご覧ください。
Google Cloud での実行
Ruby 用 Cloud Logging ライブラリを使用してログを書き込むアプリでは、基盤となるリソースのサービス アカウントにログ書き込み(roles/logging.logWriter
) IAMのロールが必要です。ほとんどの Google Cloud 環境では、このロールを持つようにデフォルトのサービス アカウントが自動的に構成されます。
App Engine
App Engine では Cloud Logging が自動的に有効になり、アプリのデフォルトのサービス アカウントにログエントリを書き込む IAM 権限がデフォルトで付与されます。
詳細については、ログの書き込みと表示をご覧ください。
Google Kubernetes Engine(GKE)
GKE は、デフォルトのサービス アカウントにログ書き込み(roles/logging.logWriter
) IAM ロールを自動的に付与します。このデフォルトのサービス アカウントで Workload Identity を使用して、ワークロードが特定の Google Cloud API にアクセスできるようにする場合、追加の構成は必要ありません。ただし、カスタム IAM サービス アカウントで Workload Identity を使用する場合は、カスタム サービス アカウントにログ書き込みロール(roles/logging.logWriter
)があることを確認してください。
必要に応じて、クラスタの作成時に次のコマンドを使用して 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 Console から新しいインスタンスを作成する場合は、[インスタンスの作成] パネルの [ID と API へのアクセス] のセクションで作成します。Compute Engine のデフォルト サービス アカウントまたは別のサービス アカウントを使用し、[ID と API へのアクセス] セクションの [すべての Cloud API に完全アクセス権を許可] を選択します。どのサービス アカウントを選択する場合でも、Google Cloud コンソールの [IAM と管理] でログ書き込みロールが付与されていることを確認してください。
ローカルやその他の場所で実行する
自分のワークステーション、データセンターのコンピュータ、別のクラウド プロバイダの VM インスタンスでライブラリを実行するなど、Google Cloud の外部で Ruby 用 Cloud Logging ライブラリを使用するには、Google Cloud プロジェクト ID と適切なサービス アカウント認証情報を Ruby 用 Cloud Logging ライブラリに直接提供する必要があります。
既存のサービス アカウントの場合は、次の操作を行います。
サービス アカウントに IAM のログ書き込み(
roles/logging.logWriter
) IAM。ロールを付与します。IAM ロールの詳細については、アクセス制御をご覧ください。
サービス アカウントをお持ちでない場合は、サービス アカウントを作成します。このプロセスについては、サービス アカウントの作成をご覧ください。
認証に使用できる方法に関する一般的な情報については、用語: サービス アカウントをご覧ください。
Ruby on Rails 構成インターフェースの使用:Ruby on Rails フレームワークを使用している場合は、Ruby on Rails 構成インターフェースを介してパラメータを指定します。
次のコマンドを使用して、すべての Google Cloud Observability gem の共有構成を設定することもできます。
Rails を本番環境で稼働する場合、ロギングはデフォルトで有効になります。開発モードでロギングを有効にするには、次のとおり追加します。
インストルメンテーション構成インターフェースの使用:
その他のラックベースのアプリケーションで使用する場合は、構成インターフェースを介してパラメータを指定します。
次のコマンドを使用して、すべての Google Cloud Observability gem の共有構成を設定することもできます。
ログを確認する
Google Cloud コンソールで、[ログ エクスプローラ] ページに移動します。
検索バーを使用してこのページを検索する場合は、小見出しが [Logging] である結果を選択します。
ログ エクスプローラでは 1 つ以上のリソースを指定する必要がありますが、リソースの選択が明確でない場合があります。その場合は、次のヒントを参考にしてください。
アプリケーションを App Engine にデプロイしている場合や、App Engine 固有のライブラリを使用している場合は、リソースを GAE アプリケーションに設定します。
アプリケーションを Compute Engine にデプロイしている場合は、リソースを GCE VM インスタンスに設定します。
アプリケーションを Google Kubernetes Engine にデプロイしている場合は、クラスタのロギング構成に応じてログエントリのリソースタイプが異なります。レガシー Google Cloud Observability と Google Cloud Observability Kubernetes Monitoring ソリューションに関する詳細な論議、およびどのようにこれらのオプションがリソースタイプに影響を与えるかについては、Google Cloud Observability Kubernetes Monitoring をご覧ください。
アプリケーションが Cloud Logging API を直接使用している場合、リソースは API と構成に依存します。たとえば、アプリケーションでリソースを指定することも、デフォルトのリソースを使用することもできます。
ログ エクスプローラにログが表示されない場合に、すべてのログエントリを表示するには、高度なクエリモードに切り替えて空のクエリを使用します。
- 高度なクエリモードに切り替えるには、ログ エクスプローラの上部にあるメニュー(▾)をクリックし、[高度なフィルタに変換] を選択します。
- フィルタ ボックスに表示されているコンテンツをクリアします。
- [フィルタを送信] をクリックします。
個々のエントリを調べてリソースを特定します。
詳細については、ログ エクスプローラの使用をご覧ください。