通过使用 Ruby 版 Cloud Logging 库,或者直接使用 Ruby 版 Cloud Logging Cloud 客户端库,您可以从 Ruby 应用向 Cloud Logging 写入日志。
无需安装 Cloud Logging 代理即可在 Compute Engine 虚拟机实例上使用 Ruby 版 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+ 或更高版本。
安装库
我们提供了 Ruby 版 Cloud Logging 库,该库为基于 Rack 的 Ruby 网络框架提供了一种易于使用的日志记录器实现:
将 Google Cloud Observability gem 添加到 Gemfile:
使用 Bundler 安装 gem:
bundle install
启用库
如果您正在使用 Ruby on Rails,Bundler 会在启动时自动将库加载到您的应用中,这会将默认的 Rails.logger
设置为 Cloud Logging 日志记录器的实例。
如果您的网络框架支持 Rack 日志记录器,则其他基于 Rack 的应用可以使用 Rack Middleware 将 Rack 日志记录器替换为 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 库写入日志,底层资源的服务账号必须具有 Logs Writer (roles/logging.logWriter
) IAM 角色。大多数 Google Cloud 环境都会自动将默认服务账号配置为具有此角色。
App Engine
系统会自动为 App Engine 启用 Cloud Logging,并且应用的默认服务账号默认拥有 IAM 权限以写入日志条目。
如需了解详情,请参阅写入和查看日志。
Google Kubernetes Engine (GKE)
GKE 会自动向默认服务账号授予 Logs Writer (roles/logging.logWriter
) IAM 角色。如果您将 Workload Identity Federation for GKE 与此默认服务账号搭配使用,以允许工作负载访问特定 Google Cloud API,则无需进行任何其他配置。不过,如果您将 Workload Identity Federation for GKE 与自定义 IAM 服务账号搭配使用,请确保自定义服务账号具有 Logs Writer (roles/logging.logWriter
) 角色。
如果需要,您还可以在创建集群时使用以下命令添加 logging.write
访问权限范围:
gcloud container clusters create example-cluster-name \
--scopes https://www.googleapis.com/auth/logging.write
Compute Engine
使用 Compute Engine 虚拟机实例时,请为每个实例添加 cloud-platform
访问权限范围。通过 Google Cloud 控制台创建新实例时,您可以在创建实例面板的身份和 API 访问权限部分执行此操作。请使用 Compute Engine 默认服务账号或您选用的其他服务账号,并在身份和 API 访问权限部分勾选允许所有 Cloud APIs 的全面访问权限。无论您选择哪个服务账号,都请确保已在 Google Cloud 控制台的 IAM 和管理部分向该服务账号授予 Logs Writer 角色。
在本地和其他位置运行
如需在 Google Cloud 外部使用 Ruby 版 Cloud Logging 库(包括在您自己的工作站、数据中心的计算机或其他云提供商的虚拟机实例上运行该库),您必须直接向 Ruby 版 Cloud Logging 库提供 Google Cloud 项目 ID 和适当的服务账号凭据。
对于现有服务账号,请执行以下操作:
向服务账号授予 Logs Writer (
roles/logging.logWriter
) IAM 角色。如需详细了解 IAM 角色,请参阅访问权限控制。
如果您没有服务账号,请创建一个。如需了解此过程,请参阅创建服务账号。
如需了解可用于身份验证的方法的一般信息,请参阅术语:服务账号。
使用 Ruby on Rails 配置界面:如果您使用的是 Ruby on Rails 框架,请通过 Ruby on Rails 配置界面提供参数:
您还可以使用以下代码为所有 Google Cloud 可观测性 gem 设置共享配置:
如果 Rails 在生产模式下运行,则默认启用 Logging。要在开发模式下启用 Logging,请添加以下内容:
使用 instrumentation 配置界面:
在基于 Rack 的其他应用中使用时,请通过配置界面提供参数:
您还可以使用以下代码为所有 Google Cloud 可观测性 gem 设置共享配置:
查看日志
在 Google Cloud 控制台中,转到 Logs Explorer 页面。
如果您使用搜索栏查找此页面,请选择子标题为 Logging 的结果。
在日志浏览器中,您必须指定一个或多个资源,但资源的选择并不那么显而易见。以下是帮助您上手的一些提示:
如果您将把应用部署到 App Engine 或者您使用的是 App Engine 专用的库,请将资源设置为 GAE 应用。
如果您将在 Compute Engine 上部署应用,请将资源设置为 GCE 虚拟机实例。
如果您要在 Google Kubernetes Engine 上部署应用,则集群的日志记录配置将确定日志条目的资源类型。如需详细了解旧版 Google Cloud Observability 和 Google Cloud Observability Kubernetes Monitoring 解决方案,以及这些选项如何影响资源类型,请参阅迁移到 Google Cloud Observability Kubernetes Monitoring。
如果您的应用直接使用 Cloud Logging API,则资源取决于该 API 和您的配置。例如,在您的应用中,您可以指定资源或使用默认资源。
如果您在日志浏览器中没有看到任何日志,若要查看所有日志条目,请切换到高级查询模式并使用空查询。
- 如需切换到高级查询模式,请点击日志浏览器顶部的菜单 (▾),然后选择转换为高级过滤条件。
- 清除过滤条件框中显示的内容。
- 点击提交过滤条件。
您可以检查各个条目以找出您的资源。
如需了解详情,请参阅使用日志浏览器。