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 Federation for GKE を使用して、ワークロードが特定のGoogle Cloud API にアクセスできるようにする場合、追加の構成は必要ありません。ただし、カスタム IAM サービス アカウントで Workload Identity Federation for GKE を使用する場合は、カスタム サービス アカウントにログ書き込みロール(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 コンソールから新しいインスタンスを作成する場合は、[インスタンスの作成] パネルの [ID と API へのアクセス] セクションで作成します。Compute Engine のデフォルト サービス アカウントまたは別のサービス アカウントを使用し、[ID と API へのアクセス] セクションの [すべての Cloud API に完全アクセス権を許可] を選択します。どのサービス アカウントを選択する場合でも、Google Cloud コンソールの [IAM と管理] でログ書き込みロールが付与されていることを確認してください。
ローカルやその他の場所で実行する
Google Cloudの外部で Ruby 用 Cloud Logging ライブラリを使用するには(自分のワークステーション、データセンターのコンピュータ、または別のクラウド プロバイダの VM インスタンスでライブラリを実行する場合など)、ローカル環境でアプリケーションのデフォルト認証情報(ADC)を設定して、Ruby 用 Cloud Logging ライブラリに対して認証を行う必要があります。
詳細については、オンプレミスまたは他のクラウド プロバイダの ADC を設定するをご覧ください。
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 と構成に依存します。たとえば、アプリケーションでリソースを指定することも、デフォルトのリソースを使用することもできます。
ログ エクスプローラにログが表示されない場合に、すべてのログエントリを表示するには、高度なクエリモードに切り替えて空のクエリを使用します。
- 高度なクエリモードに切り替えるには、ログ エクスプローラの上部にあるメニュー(▾)をクリックし、[高度なフィルタに変換] を選択します。
- フィルタ ボックスに表示されているコンテンツをクリアします。
- [フィルタを送信] をクリックします。
個々のエントリを調べてリソースを特定します。
詳細については、ログ エクスプローラの使用をご覧ください。