本文档介绍了如何配置一个 Google Cloud 项目,以监控或显示来自多个 Google Cloud 项目的遥测数据。如果您只想监控或查看存储在一个Google Cloud 项目中的数据,则无需执行任何配置,因为可视化和分析工具已配置为使用项目选择器所选 Google Cloud 项目中存储的数据。但是,如果您要查看或分析的遥测数据来自多个项目,那么为了汇总这些数据,您必须执行一些配置活动。
可观测性范围简介
Google Cloud Observability 分析和可视化工具依赖于数据类型专属范围来确定要显示或分析的数据。 范围定义了在哪些资源中搜索特定类型的数据。除指标数据外,您对搜索的项目和日志视图所拥有的 Identity and Access Management (IAM) 角色决定了显示的数据。
您可以配置以下范围:
- 可观测性范围
此范围用于控制探索器和信息中心页面如何搜索要显示的数据。每个 Google Cloud 项目都包含一个可观测性范围,其中列出了默认日志范围、指标范围和默认跟踪记录范围。
我们建议在以下情况下配置可观测性范围的组件:
- 您可以通过 App Hub 注册应用。这些应用可能是您自行注册的应用,也可能是您使用 App Design Center 部署的应用。
- 当您希望统一查看存储在不同 Google Cloud 项目中的遥测数据时。
如果您未为项目配置可观测性范围的组件,Logs Explorer 页面会显示源自该项目的日志数据。Metrics Explorer 和 Trace 探索器页面只能显示项目中存储的数据。此外,提醒政策只能监控项目中存储的数据。
- 日志范围
配置项目的默认日志范围,以便在您打开 Logs Explorer 页面时,系统显示您通常要查看的数据。日志范围可以列出项目、文件夹、组织和日志视图。例如,您可以将默认日志范围设置为列出一个日志视图,该视图在查询时会返回 App Hub 应用的日志数据。
您可以创建多个日志范围。使用 Logs Explorer 页面时,您可以选择其他日志范围,这会导致该页面搜索所选范围中列出的资源,然后刷新显示内容。
建议在以下情况下配置默认日志范围:
- 您可以将日志数据路由到集中式日志存储桶。
- 您可以将日志数据路由到其他项目或其他项目存储的日志存储桶。
- 您可以使用日志视图。
如需了解详情,请参阅创建和管理日志范围。
- 指标范围
配置指标范围以列出存储指标数据的所有项目,以便您的图表和提醒政策可以显示或监控指标数据的汇总视图。
每个 Google Cloud 项目都包含一个指标范围,默认情况下,此范围仅列出该项目。
在以下任一情况下,我们建议您配置指标范围:
如需了解详情,请参阅指标范围概览。
- 跟踪范围
将默认跟踪记录范围配置为列出存储跟踪记录数据的所有项目,以便在您打开 Trace 探索器页面时,系统会显示跟踪记录数据的汇总视图。
您可以创建多个跟踪记录范围。使用 Trace 探索器页面时,您可以选择其他日志范围,这会导致该页面搜索所选范围中列出的资源,然后刷新显示内容。
如果您希望统一查看存储在不同项目中的跟踪记录数据,我们建议您配置跟踪记录范围。
如需了解详情,请参阅创建和管理跟踪记录范围。
准备工作
如需获得创建和查看范围所需的权限,请让您的管理员为您授予以下 IAM 角色:
-
如需创建和查看日志范围以及获取默认日志范围:针对您的项目的 Logs Configuration Writer (
roles/logging.configWriter
) -
如需修改指标范围:针对您的项目以及要添加到指标范围的每个项目的 Monitoring Admin (
roles/monitoring.admin
) -
如需创建和查看跟踪记录范围以及获取默认跟踪记录范围:针对您的项目的 Cloud Trace User (
roles/cloudtrace.user
) - 如需获取和设置默认范围:针对您的项目的 Observability Editor (
roles/observability.editor
)
如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。
这些预定义角色包含创建和查看范围所需的权限。如需查看所需的确切权限,请展开所需权限部分:
所需权限
如需创建和查看范围,需要具备以下权限:
-
如需配置日志范围:
logging.logScopes.{create, delete, get, list, update}
-
如需配置指标范围:
monitoring.metricsscopes.{link, get, list}
-
如需配置跟踪范围:
cloudtrace.traceScopes.{create, delete, get, list, update}
-
如需获取和设置默认范围:
observability.scopes.{get, update}
配置可观测性范围
本部分不适用于文件夹或组织。
如果您未为项目配置可观测性范围的组件,Logs Explorer 页面会显示源自该项目的日志数据。Metrics Explorer 和 Trace 探索器页面只能显示项目中存储的数据。此外,提醒政策只能监控项目中存储的数据。
对于日志和跟踪记录数据,您在所查看项目中的 Identity and Access Management (IAM) 角色以及任何搜索的项目和日志视图决定了显示的数据。您在所查看项目中的 IAM 角色决定了您是否可以查看指标数据。
控制台
如需配置可观测性范围,您需要配置其组件,即默认日志范围、指标范围和默认跟踪记录范围:
-
Enable the Observability API.
在启用此 API 之前,确保选择正确的项目。对于 App Hub 配置,请选择 App Hub 宿主项目或已启用应用的文件夹的管理项目。
-
在 Google Cloud 控制台中,前往 settings 设置页面:
如果您使用搜索栏查找此页面,请选择子标题为监控的结果。
在 Google Cloud 控制台的工具栏中,选择您的 Google Cloud 项目。对于 App Hub 配置,请选择 App Hub 宿主项目或已启用应用的文件夹的管理项目。
配置默认日志范围:
选择日志范围标签页。
列出了现有的日志范围。带有“默认”图标
的条目是默认日志范围。如果您要创建日志范围,请点击创建日志范围,然后完成对话框。如需了解详情,请参阅创建和管理日志范围。
找到要指定为默认的条目,点击 more_vert 更多,然后选择设为默认。
配置指标范围:
- 选择“指标范围”标签页。
- 在 Google Cloud 项目窗格中,点击添加项目,然后完成对话框。如需了解详情,请参阅配置指标范围。
配置默认跟踪记录范围:
选择跟踪记录范围标签页,然后执行以下操作:
列出了现有的跟踪记录范围。带有“默认”图标
的条目是默认跟踪记录范围。如果您要创建跟踪记录范围,请点击创建日志范围,然后完成对话框。如需了解详情,请参阅创建和管理跟踪记录范围。
找到要指定为默认的条目,点击 more_vert 更多,然后选择设为默认。
gcloud
如需查看和设置默认可观测性范围,请执行以下操作:
如需查看默认范围的设置,请运行
gcloud observability scopes describe
命令。在使用下面的命令数据之前,请先进行以下替换:
- OBSERVABILITY_SCOPE_ID:
Scope
对象的名称。此值必须设置为_Default
。 - LOCATION:位置字段必须设置为
global
。 - PROJECT_ID:项目的标识符。
执行
gcloud observability scopes describe
命令:Linux、macOS 或 Cloud Shell
gcloud observability scopes describe OBSERVABILITY_SCOPE_ID \ --location=LOCATION\ --project=PROJECT_ID
Windows (PowerShell)
gcloud observability scopes describe OBSERVABILITY_SCOPE_ID ` --location=LOCATION` --project=PROJECT_ID
Windows (cmd.exe)
gcloud observability scopes describe OBSERVABILITY_SCOPE_ID ^ --location=LOCATION^ --project=PROJECT_ID
对该命令的响应如下所示:
logScope: logging.googleapis.com/projects/my-project/locations/global/logScopes/_Default name: projects/my-project/locations/global/scopes/_Default
- OBSERVABILITY_SCOPE_ID:
如需更新默认范围,请运行
gcloud observability scopes update
命令。在使用下面的命令数据之前,请先进行以下替换:
- OBSERVABILITY_SCOPE_ID:
Scope
对象的名称。此值必须设置为_Default
。 - LOG_SCOPE_FQN_ID:日志范围的完全限定 ID。此字段采用以下格式:
logging.googleapis.com/projects/PROJECT_ID/locations/LOCATION/logScopes/LOG_SCOPE_ID
在上面的表达式中,LOG_SCOPE_ID 是日志范围的 ID。例如,
my-scope
。 - LOCATION:位置字段必须设置为
global
。 - PROJECT_ID:项目的标识符。
执行
gcloud observability scopes update
命令:Linux、macOS 或 Cloud Shell
gcloud observability scopes update OBSERVABILITY_SCOPE_ID \ --log-scope=LOG_SCOPE_FQN_ID\ --location=LOCATION\ --project=PROJECT_ID
Windows (PowerShell)
gcloud observability scopes update OBSERVABILITY_SCOPE_ID ` --log-scope=LOG_SCOPE_FQN_ID` --location=LOCATION` --project=PROJECT_ID
Windows (cmd.exe)
gcloud observability scopes update OBSERVABILITY_SCOPE_ID ^ --log-scope=LOG_SCOPE_FQN_ID^ --location=LOCATION^ --project=PROJECT_ID
例如,如果 LOG_SCOPE_ID 的值为
my-scope
,则响应如下所示:Updated scope [_Default]. logScope: logging.googleapis.com/projects/my-project/locations/global/logScopes/my-scope name: projects/my-project/locations/global/scopes/_Default
- OBSERVABILITY_SCOPE_ID:
REST
不支持设置默认跟踪记录范围。
如需使用 Observability API 获取或设置默认日志范围,请执行以下操作:
确保已启用 Observability API:
-
After installing the Google Cloud CLI, initialize it by running the following command:
gcloud init
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
设置 Google Cloud CLI 的默认项目:
gcloud config set project PROJECT_ID
在运行上述命令之前,请替换以下内容:
- PROJECT_ID:项目的标识符。 对于 App Hub 配置,请选择 App Hub 宿主项目或已启用应用的文件夹的管理项目。
-
Enable the Observability API:
gcloud services enable observability.googleapis.com
-
执行下列其中一项操作:
如需获取项目的默认日志范围,请向
projects.locations.scopes.get
端点发送请求。您必须指定路径参数。响应是一个Scope
对象,其中列出了默认日志范围。如需更新项目的默认日志范围,请向
projects.locations.scopes.patch
端点发送请求。您必须指定路径参数、查询参数并提供Scope
对象。查询参数用于标识更改的字段。响应是一个Scope
对象。这两个端点的路径参数采用以下格式:
projects/PROJECT_ID/locations/LOCATION/scopes/OBSERVABILITY_SCOPE_ID
上面表达式中的字段含义如下:
- PROJECT_ID:项目的标识符。 对于 App Hub 配置,请选择 App Hub 宿主项目或已启用应用的文件夹的管理项目。
- LOCATION:位置字段必须设置为
global
。 - OBSERVABILITY_SCOPE_ID:
Scope
对象的名称。此字段必须设置为_Default
。名称为_Default
的Scope
对象会存储有关默认日志范围的信息,并且会自动创建。
如需向 API 端点发送命令,您可以使用 APIs Explorer,以便从参考页面发出命令。例如,如需获取当前默认范围,您可以执行以下操作:
- 点击
projects.locations.scopes.get
。 在尝试此方法微件的名称字段中输入以下内容:
projects/PROJECT_ID/locations/global/scopes/_Default
在复制上述字段之前,请将 PROJECT_ID 替换为您的项目名称。
选择执行。
在授权对话框中,完成所需的步骤。
响应类似于以下示例:
{ "name": "projects/my-project/locations/global/scopes/_Default", "logScope": "logging.googleapis.com/projects/my-project/locations/global/logScopes/_Default" }