Ruby 用 Stackdriver Logging ライブラリを使用するか、Ruby 用 Stackdriver Logging クラウド クライアント ライブラリを直接使用して、Ruby アプリケーションから Stackdriver Logging にログを書き込むことができます。
Ruby 用 Stackdriver Logging ライブラリを Compute Engine VM インスタンスで使用するために、Stackdriver Logging エージェントをインストールする必要はありません。
始める前に
-
Google アカウントにログインします。
Google アカウントをまだお持ちでない場合は、新しいアカウントを登録します。
-
GCP Console のプロジェクト セレクタのページで、GCP プロジェクトを選択または作成します。
-
Google Cloud Platform プロジェクトに対して課金が有効になっていることを確認します。 詳しくは、課金を有効にする方法をご覧ください。
- Stackdriver Logging API を有効にします。
- Ruby 2.2+ 以上をインストールします。
ライブラリのインストール
Google が提供する Ruby 用 Stackdriver Logging ライブラリでは、ラックベース Ruby ウェブ フレームワーク向けに、使いやすいロガー実装が公開されています。
Gemfile に Stackdriver gem を追加します。
Bundler を使用して gem をインストールします。
bundle install
ライブラリの有効化
Ruby on Rails を使用している場合は、Bundler が起動するときにライブラリが自動的にアプリケーションに読み込まれ、デフォルトの Rails.logger
が Stackdriver Logging ロガーのインスタンスに設定されます。
他のラックベースのアプリケーションでは、ウェブ フレームワークでラックロガーがサポートされる場合、ラック ミドルウェアを使用して、ラックロガーを Stackdriver Logging ロガーに置き換えることができます。
ライブラリの構成
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 構成インターフェースを介してパラメータを指定します。
次のコマンドを使用して、すべての Stackdriver gem の共有構成を設定することもできます。
Rails を本番環境で稼働する場合、ロギングはデフォルトで有効になります。開発モードでロギングを有効にするには、次のとおり追加します。
インストルメンテーション構成インターフェースの使用:
その他のラックベースのアプリケーションで使用する場合は、構成インターフェースを介してパラメータを指定します。
次のコマンドを使用して、すべての Stackdriver gem の共有構成を設定することもできます。
ログの表示
デプロイ後、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 と構成に依存します。たとえば、アプリケーションでリソースを指定することも、デフォルトのリソースを使用することもできます。
ログビューアにログが表示されていないときに、すべてのログエントリを表示するには、高度なフィルタモードに切り替えて空のフィルタを使用します。
- 高度なフィルタモードに切り替えるには、ログビューアの上部にあるメニュー(▾)をクリックして、[高度なフィルタに変換] を選択します。
- フィルタ ボックスに表示されているコンテンツをクリアします。
- [フィルタを送信] をクリックします。
個々のエントリを調べてリソースを特定します。