在日志存储桶上配置日志视图

本文档介绍了如何在 Cloud Logging 存储分区中创建和管理日志视图。借助日志视图,您可以高级且精细地控制有权访问您的日志存储分区中的日志的人员。

您可以使用 Google Cloud 控制台、gcloud CLI、Terraform 或 Cloud Logging API 配置和管理日志视图。

如需了解 Logging 存储模型的一般信息,请参阅路由和存储概览

日志视图简介

借助日志视图,您可以向用户授予对日志存储分区中部分日志的访问权限。例如,考虑这样一个场景,您在一个中央项目中存储组织的日志。您可以为向日志存储分区提供日志的每个项目创建一个日志视图。然后,您可以向每位用户授予对一个或多个日志视图的访问权限,从而限制用户可以查看哪些日志。

对于每个日志存储桶,您最多可为其创建 30 个日志视图。

控制对日志视图的访问权限

Cloud Logging 使用 IAM 政策来控制哪些用户有权访问日志视图。IAM 政策可在资源、项目、文件夹和组织级别存在。对于 Cloud Logging,您可以为每个日志视图创建 IAM 政策。为了确定主账号是否有权执行操作,IAM 会评估所有适用的政策,其中第一次评估是在资源级别进行的。

在 Google Cloud 项目中具有 roles/logging.viewAccessor 角色的主账号可以访问项目中任何日志存储分区中的视图和日志。

如需向主账号授予仅对特定日志视图的访问权限,请执行以下操作之一:

  • 为日志视图创建 IAM 政策,然后向该政策添加 IAM 绑定,以向主账号授予对日志视图的访问权限。

    如果您要创建大量日志视图,我们建议您采用这种方法。

  • 在包含日志视图的项目中向主账号授予 roles/logging.viewAccessor 的 IAM 角色,但附加 IAM 条件以将授予权限限制为特定日志视图。如果您省略条件,则会向主账号授予对所有日志视图的访问权限。Google Cloud 项目的政策文件中,包含同一角色和同一主账号但条件表达式不同的角色绑定数不得超过 20 个。

如需了解详情,请参阅本文档的以下部分:

自动创建的日志视图

Cloud Logging 会自动为每个日志存储分区创建一个 _AllLogs 视图,并为 _Default 日志存储分区创建一个 _Default 视图:

  • _AllLogs 视图:您可以查看日志存储分区中的所有日志。
  • _Default 视图:您可以查看日志存储分区中的所有非数据访问审核日志。

您无法修改 Cloud Logging 自动创建的视图;不过,您可以删除 _AllLogs 视图。

日志视图过滤器

每个日志视图都包含一个过滤条件,用于确定该视图中显示哪些日志条目。过滤条件可以包含逻辑 ANDNOT 运算符;但不能包含逻辑 OR 运算符。过滤条件可以比较以下任一值:

  • 使用 source 函数的数据源。source 函数会返回组织、文件夹和 Google Cloud 项目层次结构中特定资源的日志条目。

  • 使用 log_id 函数的日志 ID。log_id 函数会返回与 logName 字段中的指定 LOG_ID 参数匹配的日志条目。

  • 使用 resource.type= FIELD_NAME 比较运算的有效资源类型。

例如,以下过滤器会捕获名为 myproject 的 Google Cloud 项目中的 Compute Engine stdout 日志条目:

source("projects/myproject") AND resource.type = "gce_instance" AND log_id("stdout")

如需详细了解过滤语法,请参阅比较

日志视图与分析视图的区别

日志视图和分析视图不同。

日志存储分区中的日志视图用于控制您可以查看日志存储分区中的哪些日志条目。使用 Log Analytics 时,LogEntry 数据结构决定了您查询的数据的架构。

分析视图包含对一个或多个日志视图执行的 SQL 查询。使用 Log Analytics,您可以针对分析视图编写查询。由于分析视图的创建者决定了架构,因此分析视图的一个用例是将日志数据从 LogEntry 格式转换为更适合您的格式。

准备工作

在创建或更新日志视图之前,请完成以下步骤:

  1. 如果您尚未创建,请在相应的 Google Cloud 项目中创建一个 Logging 存储分区,并为其配置自定义日志视图。

  2. 如需获得创建和管理日志视图以及授予对日志视图的访问权限所需的权限,请让管理员向您授予项目的以下 IAM 角色:

    如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限

    您也可以通过自定义角色或其他预定义角色来获取所需的权限。

  3. Select the tab for how you plan to use the samples on this page:

    Console

    When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.

    gcloud

    In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

    Terraform

    如需在本地开发环境中使用本页面上的 Terraform 示例,请安装并初始化 gcloud CLI,然后使用您的用户凭据设置应用默认凭据。

    1. Install the Google Cloud CLI.
    2. To initialize the gcloud CLI, run the following command:

      gcloud init
    3. If you're using a local shell, then create local authentication credentials for your user account:

      gcloud auth application-default login

      You don't need to do this if you're using Cloud Shell.

    如需了解详情,请参阅 Google Cloud 身份验证文档中的为本地开发环境设置 ADC

  4. 确定要在视图中包含的日志。您可以使用这些信息指定日志视图的过滤条件

  5. 确定哪些人应有权访问日志视图,以及您是想向日志视图的 IAM 政策还是 Google Cloud 项目添加绑定。如需了解详情,请参阅控制对日志视图的访问权限

创建日志视图

对于每个日志存储桶,您最多可为其创建 30 个日志视图。

控制台

如需创建日志视图,请执行以下操作:

  1. 在 Google Cloud 控制台中,转到日志存储页面:

    前往日志存储

    如果您使用搜索栏查找此页面,请选择子标题为 Logging 的结果。

  2. 选择存储日志存储分区的项目、文件夹或组织。
  3. 日志存储分区窗格中,选择要为其创建日志视图的日志存储分区的名称。
  4. 在日志存储分区的详情页面中,前往日志视图窗格,然后点击创建日志视图
  5. 定义日志视图页面中,完成以下操作:

    1. 为日志视图输入一个名称。日志视图创建后,您将无法更改此名称。名称不得超过 100 个字符,且只能包含字母、数字、下划线和连字符。
    2. 输入日志视图的说明。
    3. 构建过滤条件字段中,输入一个表达式,用于确定日志分桶中的哪些日志条目会包含在日志视图中。如需了解此字段的结构,请参阅本文档的日志视图过滤条件部分。
  6. 可选:如需向日志视图资源添加角色绑定,请执行以下操作:

    1. 点击继续,进入设置权限页面。
    2. 点击 授予访问权限
    3. 添加主账号部分中,展开新的主账号菜单,然后选择主账号。
    4. 分配角色部分,选择 Logs View Accessor 角色。
    5. 点击保存
  7. 点击保存视图

  8. 如果您在创建流程中未向主账号授予对日志视图的访问权限,请完成以下部分中的步骤。

gcloud

如需创建日志视图,请执行以下操作:

  1. 运行 gcloud logging views create 命令。

    在使用下面的命令数据之前,请先进行以下替换:

    • LOG_VIEW_ID:日志视图的标识符,不得超过 100 个字符,且只能包含字母、数字、下划线和连字符。
    • BUCKET_NAME:日志存储分区的名称。
    • LOCATION:日志存储分区的位置。
    • FILTER:用于定义日志视图的过滤条件。如果为空,日志视图将包含所有日志。例如,如需按 Compute Engine 虚拟机实例日志进行过滤,请输入 "resource.type=gce_instance"
    • DESCRIPTION:日志视图的说明。例如,您可以为说明 "Compute logs" 输入以下内容。
    • PROJECT_ID:项目的标识符。如需在文件夹或组织中创建日志视图,请将 --project 替换为 --folder--organization

    执行 gcloud logging views create 命令:

    Linux、macOS 或 Cloud Shell

    gcloud logging views create LOG_VIEW_ID --bucket=BUCKET_NAME \
     --location=LOCATION --log-filter=FILTER --description=DESCRIPTION \
     --project=PROJECT_ID

    Windows (PowerShell)

    gcloud logging views create LOG_VIEW_ID --bucket=BUCKET_NAME `
     --location=LOCATION --log-filter=FILTER --description=DESCRIPTION `
     --project=PROJECT_ID

    Windows (cmd.exe)

    gcloud logging views create LOG_VIEW_ID --bucket=BUCKET_NAME ^
     --location=LOCATION --log-filter=FILTER --description=DESCRIPTION ^
     --project=PROJECT_ID

    此命令不会提供响应。如需确认更改,您可以运行 gcloud logging views list 命令。

  2. 向主账号授予日志视图访问权限。以下部分包含有关这些步骤的信息。

Terraform

如需了解如何应用或移除 Terraform 配置,请参阅基本 Terraform 命令。 如需了解详情,请参阅 Terraform 提供程序参考文档

如需使用 Terraform 在项目、文件夹或组织中创建日志视图,请执行以下操作:

  1. 使用 Terraform 资源 google_logging_log_view

    在该命令中,设置以下字段:

    • name:设置为日志视图的完全限定名称。例如,对于项目,此字段的格式为:

      "projects/PROJECT_ID/locations/LOCATION/buckets/BUCKET_NAME/view/LOG_VIEW_ID"
      

      在上面的表达式中,LOCATION 是日志存储分区的位置。

    • bucket:设置为日志存储分区的完全限定名称。例如,此字段可能为:

      "projects/PROJECT_ID/locations/LOCATION/buckets/BUCKET_NAME"
      
    • filter:用于描述日志视图中包含哪些日志条目的过滤条件。

    • description:简要说明。

  2. 向主账号授予日志视图访问权限。以下部分包含有关这些步骤的信息。

授予对日志视图的访问权限

如需将主账号限制为只能查看用户定义的日志存储分区中的特定日志视图,您可以采用以下两种方法:

创建大量日志视图时,我们建议您使用日志视图的 IAM 政策文件来控制访问权限。

日志视图:添加角色绑定

本部分介绍了如何使用日志视图的 IAM 政策文件来控制哪些用户有权访问该日志视图中的日志条目。使用此方法时,您需要向日志视图的政策文件添加绑定,该绑定会向指定的主账号授予对日志视图的访问权限。

本部分还介绍了如何为日志视图列出 IAM 政策文件中包含的角色绑定。

控制台

如需更新日志视图的 IAM 政策文件,请执行以下操作:

  1. 在 Google Cloud 控制台中,转到日志存储页面:

    前往日志存储

    如果您使用搜索栏查找此页面,请选择子标题为 Logging 的结果。

  2. 选择存储日志存储分区的项目、文件夹或组织。
  3. 日志存储分区窗格中,选择托管日志视图的日志存储分区的名称。
  4. 在日志存储分区的详情页面中,前往日志视图窗格。
  5. 对于要修改 IAM 政策文件的日志视图,请点击 操作,然后选择调整权限

    系统会打开权限动作条,并显示与日志视图关联的权限。

  6. 在权限弹出式窗口中,点击添加主账号

  7. 添加主账号部分,展开新的主账号菜单,然后选择主账号。

  8. 分配角色部分,选择 Logs View Accessor 角色。

  9. 点击保存

    权限动作条会随新权限更新。

    • 标记为 Logs View Accessor (N) 的部分列出了获得“Logs View Accessor”角色的项目级授予的主账号。这些主账号可以访问项目中的所有日志视图。

    • 标签为 Logs View Accessor condition:Condition-specific descriptive text (N) 的部分会列出获得了条件式项目级“Logs View Accessor”角色授予的主账号。这些主账号只能访问条件指定的日志视图。

    • 标签为 Logs View Accessor condition:abcde (N) 的部分列出了拥有日志视图级授予的主账号。

    以下屏幕截图显示了权限动作条,其中两个主账号具有项目级角色授予(以项目图标 表示),一个主账号具有日志视图级授予:

    权限动作条示意图。

  10. 如需关闭该动作条,请点击 X

gcloud

如需更新日志视图的 IAM 政策文件,请执行以下操作:

  1. 运行 gcloud logging views add-iam-policy-binding 命令。

    在使用下面的命令数据之前,请先进行以下替换:

    • LOG_VIEW_ID:日志视图的标识符,不得超过 100 个字符,且只能包含字母、数字、下划线和连字符。
    • PRINCIPAL:您要授予该角色的主账号的标识符。主账号标识符通常采用以下格式:PRINCIPAL-TYPE:ID。例如 user:my-user@example.com。 如需查看 PRINCIPAL 可以采用的格式的完整列表,请参阅主账号标识符
    • BUCKET_NAME:日志存储分区的名称。
    • LOCATION:日志存储分区的位置。
    • PROJECT_ID:项目的标识符。如有必要,请将 --project 替换为 --folder--organization

    执行 gcloud logging views add-iam-policy-binding 命令:

    Linux、macOS 或 Cloud Shell

    gcloud logging views add-iam-policy-binding LOG_VIEW_ID \
      --member=PRINCIPAL --role='roles/logging.viewAccessor' \
      --bucket=BUCKET_NAME --location=LOCATION \
      --project=PROJECT_ID

    Windows (PowerShell)

    gcloud logging views add-iam-policy-binding LOG_VIEW_ID `
      --member=PRINCIPAL --role='roles/logging.viewAccessor' `
      --bucket=BUCKET_NAME --location=LOCATION `
      --project=PROJECT_ID

    Windows (cmd.exe)

    gcloud logging views add-iam-policy-binding LOG_VIEW_ID ^
      --member=PRINCIPAL --role='roles/logging.viewAccessor' ^
      --bucket=BUCKET_NAME --location=LOCATION ^
      --project=PROJECT_ID

    下面说明了添加单个绑定时的响应:

    Updated IAM policy for logging view [projects/PROJECT_ID/locations/global/buckets/BUCKET_NAME/views/LOG_VIEW_ID].
    bindings:
    - members:
      - PRINCIPAL
      role: roles/logging.viewAccessor
    etag: BwYXfSd9-Gw=
    version: 1
    

  2. 如需验证更新,请运行 gcloud logging views get-iam-policy 命令:

    在使用下面的命令数据之前,请先进行以下替换:

    • LOG_VIEW_ID:日志视图的标识符,不得超过 100 个字符,且只能包含字母、数字、下划线和连字符。
    • BUCKET_NAME:日志存储分区的名称。
    • LOCATION:日志存储分区的位置。
    • PROJECT_ID:项目的标识符。如有必要,请将 --project 替换为 --folder--organization

    执行 gcloud logging views get-iam-policy 命令:

    Linux、macOS 或 Cloud Shell

    gcloud logging views get-iam-policy LOG_VIEW_ID \
     --bucket=BUCKET_NAME --location=LOCATION \
     --project=PROJECT_ID

    Windows (PowerShell)

    gcloud logging views get-iam-policy LOG_VIEW_ID `
     --bucket=BUCKET_NAME --location=LOCATION `
     --project=PROJECT_ID

    Windows (cmd.exe)

    gcloud logging views get-iam-policy LOG_VIEW_ID ^
     --bucket=BUCKET_NAME --location=LOCATION ^
     --project=PROJECT_ID

    如果日志视图不包含任何绑定,则响应仅包含 etag 字段。下面说明了日志视图包含单个绑定时的响应:

    bindings:
    - members:
      - PRINCIPAL
      role: roles/logging.viewAccessor
    etag: BwYXfSd9-Gw=
    version: 1
    

Terraform

如需了解如何应用或移除 Terraform 配置,请参阅基本 Terraform 命令。 如需了解详情,请参阅 Terraform 提供程序参考文档

如需使用 Terraform 为日志视图预配 IAM 关联,可以使用几种不同的资源:

  • google_logging_log_view_iam_policy
  • google_logging_log_view_iam_binding
  • google_logging_log_view_iam_member

如需了解详情,请参阅 Cloud Logging LogView 的 IAM 政策

如需使用 Terraform 列出日志视图的 IAM 关联,请使用数据源 google_logging_log_view_iam_policy

Google Cloud 项目:添加角色绑定

本部分介绍了如何向 Google Cloud 项目添加角色绑定,以及如何列出与项目关联的绑定。使用此方法时,若要限制某个主账号对存储在特定日志视图中的日志条目的访问权限,您必须向授予中添加 IAM 条件。

控制台

如需向 Google Cloud 项目的 IAM 政策文件添加角色绑定,请在创建日志存储分区的项目中执行以下操作:

  1. 在 Google Cloud 控制台中,进入 IAM 页面:

    前往 IAM

    如果您使用搜索栏查找此页面,请选择子标题为 IAM 和管理的结果。

    IAM 页面会列出在项目级应用的所有主账号、其 IAM 角色以及与这些角色关联的任何条件。此页面不会显示附加到日志视图政策文件的角色绑定。

  2. 点击 授予访问权限

  3. 新主账号字段中,添加用户的电子邮件账号。

  4. 选择角色下拉菜单中,选择 Logs View Accessor

    此角色为用户提供所有视图的读取权限。如需限制用户对特定视图的访问权限,请根据资源名称添加条件。

    1. 点击添加 IAM 条件

    2. 输入条件的标题说明

    3. 条件类型下拉菜单中,依次选择资源 > 名称

    4. 运算符下拉菜单中,选择

    5. 字段中,输入日志视图的 ID,包括视图的完整路径。

      例如:

      projects/PROJECT_ID/locations/LOCATION/buckets/BUCKET_NAME/views/LOG_VIEW_ID
    6. 点击保存以添加该条件。

  5. 点击保存以设置权限。

gcloud

如需向 Google Cloud 项目的 IAM 政策文件添加角色绑定,请完成以下步骤:

  1. 创建包含条件的 JSON 或 yaml 文件。

    例如,您可以创建一个名为 condition.yaml 的文件,其中包含以下内容:

    expression: "resource.name == \"projects/PROJECT_ID/locations/LOCATION/buckets/BUCKET_NAME/views/LOG_VIEW_ID\""
    title: "My title"
    description: "My description"
    
  2. 可选:如需验证 JSON 或 yaml 文件的格式是否正确,请运行以下命令:

    gcloud alpha iam policies lint-condition --condition-from-file=condition.yaml
    
  3. 通过调用 gcloud projects add-iam-policy-binding 方法更新 Google Cloud 项目的 IAM 政策。

    在使用以下命令之前,请先进行以下替换:

    • PROJECT_ID:项目的标识符。
    • PRINCIPAL:您要授予该角色的主账号的标识符。主账号标识符通常采用以下格式:PRINCIPAL-TYPE:ID。例如 user:my-user@example.com。 如需查看 PRINCIPAL 可以采用的格式的完整列表,请参阅主账号标识符

    执行 gcloud projects add-iam-policy-binding 命令:

    gcloud projects add-iam-policy-binding PROJECT_ID --member=PRINCIPAL --role='roles/logging.viewAccessor' --condition-from-file=condition.yaml
    

    对上述命令的响应包含所有角色绑定。

    - condition:
        description: My description
        expression: resource.name == "projects/PROJECT_ID/locations/LOCATION/buckets/BUCKET_NAME/views/LOG_VIEW_ID"
        title: My title
      members:
      - PRINCIPAL
      role: roles/logging.viewAccessor
    
  4. 可选:如需列出 Google Cloud 项目中的角色绑定,请使用 gcloud projects get-iam-policy 命令:

    gcloud projects get-iam-policy PROJECT_ID
    

    在使用以下命令之前,请先进行以下替换:

    • PROJECT_ID:项目的标识符。

    对上述命令的响应包含所有角色绑定。

    - condition:
        description: My description
        expression: resource.name == "projects/PROJECT_ID/locations/LOCATION/buckets/BUCKET_NAME/views/LOG_VIEW_ID"
        title: My title
      members:
      - PRINCIPAL
      role: roles/logging.viewAccessor
    

Terraform

如需了解如何应用或移除 Terraform 配置,请参阅基本 Terraform 命令。 如需了解详情,请参阅 Terraform 提供程序参考文档

如需使用 Terraform 为项目预配 IAM 关联,可以使用几种不同的资源:

  • google_project_iam_policy
  • google_project_iam_binding
  • google_project_iam_member

如需了解详情,请参阅适用于项目的 IAM 政策

如需使用 Terraform 列出项目的 IAM 关联,请使用数据源 google_project_iam_policy

列出日志视图的所有角色绑定

Google Cloud 控制台中的 IAM 页面会列出项目级角色绑定。本页面未列出附加到日志视图等资源的角色绑定。本部分介绍了如何查看特定日志视图的所有角色绑定。

如需列出已附加到日志视图的 IAM 绑定,请完成以下步骤。

  1. 在 Google Cloud 控制台中,转到日志存储页面:

    前往日志存储

    如果您使用搜索栏查找此页面,请选择子标题为 Logging 的结果。

  2. 选择存储日志存储分区的项目、文件夹或组织。
  3. 日志存储分区窗格中,选择托管日志视图的日志存储分区的名称。
  4. 在日志存储分区的详情页面中,前往日志视图窗格。
  5. 对于您要查看角色绑定的日志视图,请点击 操作,然后选择调整权限

    权限动作条会显示与日志视图关联的所有权限:

    • 标记为 Logs View Accessor (N) 的部分列出了获得“Logs View Accessor”角色的项目级授予的主账号。这些主账号可以访问项目中的所有日志视图。

    • 标签为 Logs View Accessor condition:Condition-specific descriptive text (N) 的部分会列出获得了条件式项目级“Logs View Accessor”角色授予的主账号。这些主账号只能访问条件指定的日志视图。

    • 标签为 Logs View Accessor condition:abcde (N) 的部分列出了拥有日志视图级授予的主账号。

    以下屏幕截图显示了权限动作条,其中两个主账号具有项目级角色授予(以项目图标 表示),一个主账号具有日志视图级授予:

    权限动作条示意图。

  6. 如需关闭该动作条,请点击 X

列出日志存储分区中的日志视图

控制台

  1. 在 Google Cloud 控制台中,转到日志存储页面:

    前往日志存储

    如果您使用搜索栏查找此页面,请选择子标题为 Logging 的结果。

  2. 选择存储日志存储分区的项目、文件夹或组织。
  3. 日志存储分区窗格中,选择托管日志视图的日志存储分区的名称。

    系统会打开日志存储分区的详情页面。Log views 窗格会列出日志存储分区中的日志视图。

gcloud

如需列出为日志存储分区创建的日志视图,请使用 gcloud logging views list 命令。

在使用下面的命令数据之前,请先进行以下替换:

  • BUCKET_NAME:日志存储分区的名称。
  • LOCATION:日志存储分区的位置。
  • PROJECT_ID:项目的标识符。如有必要,请将 --project 替换为 --folder--organization

执行 gcloud logging views list 命令:

Linux、macOS 或 Cloud Shell

gcloud logging views list \
 --bucket=BUCKET_NAME --location=LOCATION \
 --project=PROJECT_ID

Windows (PowerShell)

gcloud logging views list `
 --bucket=BUCKET_NAME --location=LOCATION `
 --project=PROJECT_ID

Windows (cmd.exe)

gcloud logging views list ^
 --bucket=BUCKET_NAME --location=LOCATION ^
 --project=PROJECT_ID

响应数据是日志视图的列表。对于每个日志视图,系统都会显示过滤条件以及创建日期和上次更新日期。如果“创建日期”和“更新日期”为空,则表示日志视图是在创建 Google Cloud 项目时创建的。以下示例输出显示,所查询的日志分桶中包含两个视图 ID,即 _AllLogscompute

VIEW_ID: _AllLogs
FILTER:
CREATE_TIME:
UPDATE_TIME:

VIEW_ID: compute
FILTER: resource.type="gce_instance"
CREATE_TIME: 2024-02-20T17:41:17.405162921Z
UPDATE_TIME: 2024-02-20T17:41:17.405162921Z

Terraform

您可以使用 Terraform 创建和修改日志视图。不过,您无法使用 Terraform 列出日志视图。

更新日志视图

控制台

  1. 在 Google Cloud 控制台中,转到日志存储页面:

    前往日志存储

    如果您使用搜索栏查找此页面,请选择子标题为 Logging 的结果。

  2. 选择存储日志存储分区的项目、文件夹或组织。
  3. 日志存储分区窗格中,选择托管日志视图的日志存储分区的名称。
  4. 在日志存储分区的详情页面中,前往日志视图窗格。
  5. 在要更新其详细信息的日志视图中,点击 更多,然后点击修改视图

    您可以修改日志视图的说明和过滤条件。

  6. 完成更改后,点击保存视图

gcloud

如需更新或修改日志视图,请使用 gcloud logging views update 命令。如果您不知道视图 ID,请参阅列出日志视图

在使用下面的命令数据之前,请先进行以下替换:

  • LOG_VIEW_ID:日志视图的标识符,不得超过 100 个字符,且只能包含字母、数字、下划线和连字符。
  • BUCKET_NAME:日志存储分区的名称。
  • LOCATION:日志存储分区的位置。
  • FILTER:用于定义日志视图的过滤条件。如果为空,日志视图将包含所有日志。例如,如需按 Compute Engine 虚拟机实例日志进行过滤,请输入 "resource.type=gce_instance"
  • DESCRIPTION:日志视图的说明。例如,您可以为说明 "New description for the log view" 输入以下内容。
  • PROJECT_ID:项目的标识符。如有必要,请将 --project 替换为 --folder--organization

执行 gcloud logging views update 命令:

Linux、macOS 或 Cloud Shell

gcloud logging views update LOG_VIEW_ID \
 --bucket=BUCKET_NAME --location=LOCATION \
 --log-filter=FILTER --description=DESCRIPTION \
 --project=PROJECT_ID

Windows (PowerShell)

gcloud logging views update LOG_VIEW_ID `
 --bucket=BUCKET_NAME --location=LOCATION `
 --log-filter=FILTER --description=DESCRIPTION `
 --project=PROJECT_ID

Windows (cmd.exe)

gcloud logging views update LOG_VIEW_ID ^
 --bucket=BUCKET_NAME --location=LOCATION ^
 --log-filter=FILTER --description=DESCRIPTION ^
 --project=PROJECT_ID

此命令不会提供响应。如需确认更改,您可以运行 gcloud logging views describe 命令。

Terraform

如需了解如何应用或移除 Terraform 配置,请参阅基本 Terraform 命令。 如需了解详情,请参阅 Terraform 提供程序参考文档

如需使用 Terraform 修改项目、文件夹或组织中的日志视图,请使用 Terraform 资源 google_logging_log_view

删除日志视图

如果您不再需要自己创建的日志视图,可以将其删除。不过,在删除日志视图之前,我们建议您先验证该日志视图是否未被其他资源(例如已保存的查询)引用。

您无法删除 _Default 日志存储分区中的 _Default 日志视图。

控制台

  1. 在 Google Cloud 控制台中,转到日志存储页面:

    前往日志存储

    如果您使用搜索栏查找此页面,请选择子标题为 Logging 的结果。

  2. 选择存储日志存储分区的项目、文件夹或组织。
  3. 日志存储分区窗格中,选择托管日志视图的日志存储分区的名称。
  4. 在日志存储分区的详情页面中,前往日志视图窗格,然后选中要删除的日志视图对应的复选框。
  5. 日志视图窗格的工具栏中,点击 Delete view(删除视图),然后完成对话框。

gcloud

如需删除日志视图,请执行以下操作:

  1. 建议:检查您的 Google Cloud 项目,确保未引用日志视图。不妨考虑检查以下方面:

    • 从已保存或共享的 Logs ExplorerLog Analytics 页面运行的查询。
    • 自定义信息中心。
  2. 使用 gcloud logging views delete 命令。如果您不知道视图 ID,请参阅列出日志视图

    在使用下面的命令数据之前,请先进行以下替换:

    • LOG_VIEW_ID:日志视图的标识符,不得超过 100 个字符,且只能包含字母、数字、下划线和连字符。
    • BUCKET_NAME:日志存储分区的名称。
    • LOCATION:日志存储分区的位置。
    • PROJECT_ID:项目的标识符。如有必要,请将 --project 替换为 --folder--organization

    执行 gcloud logging views delete 命令:

    Linux、macOS 或 Cloud Shell

    gcloud logging views delete LOG_VIEW_ID \
     --bucket=BUCKET_NAME --location=LOCATION \
     --project=PROJECT_ID

    Windows (PowerShell)

    gcloud logging views delete LOG_VIEW_ID `
     --bucket=BUCKET_NAME --location=LOCATION `
     --project=PROJECT_ID

    Windows (cmd.exe)

    gcloud logging views delete LOG_VIEW_ID ^
     --bucket=BUCKET_NAME --location=LOCATION ^
     --project=PROJECT_ID

    响应确认了删除操作。例如,以下是删除名为 tester 的日志视图的响应:

    Deleted [tester].
    

Terraform

如需了解如何应用或移除 Terraform 配置,请参阅基本 Terraform 命令。 如需了解详情,请参阅 Terraform 提供程序参考文档

说明日志视图

控制台

  1. 在 Google Cloud 控制台中,转到日志存储页面:

    前往日志存储

    如果您使用搜索栏查找此页面,请选择子标题为 Logging 的结果。

  2. 日志存储分区窗格中,选择托管日志视图的日志存储分区的名称。
  3. 在日志存储分区的详情页面中,前往日志视图窗格。
  4. 在要查看详细信息的日志视图中,点击 更多,然后点击修改视图
  5. 如要关闭对话框而不保存任何更改,请点击取消

gcloud

如需检索日志视图的详细信息,请使用 gcloud logging views describe 命令。如果您不知道视图 ID,请参阅列出日志视图

在使用下面的命令数据之前,请先进行以下替换:

  • LOG_VIEW_ID:日志视图的标识符,不得超过 100 个字符,且只能包含字母、数字、下划线和连字符。
  • BUCKET_NAME:日志存储分区的名称。
  • LOCATION:日志存储分区的位置。
  • PROJECT_ID:项目的标识符。如有必要,请将 --project 替换为 --folder--organization

执行 gcloud logging views describe 命令:

Linux、macOS 或 Cloud Shell

gcloud logging views describe LOG_VIEW_ID \
 --bucket=BUCKET_NAME --location=LOCATION\
 --project=PROJECT_ID

Windows (PowerShell)

gcloud logging views describe LOG_VIEW_ID `
 --bucket=BUCKET_NAME --location=LOCATION`
 --project=PROJECT_ID

Windows (cmd.exe)

gcloud logging views describe LOG_VIEW_ID ^
 --bucket=BUCKET_NAME --location=LOCATION^
 --project=PROJECT_ID

响应始终包含日志视图的说明和完全限定名称。如果过滤条件字段不为空,则还会包含过滤条件。以下是示例响应:

createTime: '2024-02-20T17:41:17.405162921Z'
filter: resource.type="gce_instance"
name: projects/my-project/locations/global/buckets/my-bucket/views/compute
updateTime: '2024-02-20T17:41:17.405162921Z'

Terraform

您可以使用 Terraform 创建和修改日志视图。不过,您无法使用 Terraform 显示日志视图的详细信息。

查看与日志视图关联的日志

您可以使用日志浏览器或 Log Analytics 页面在日志视图中显示日志条目。使用日志浏览器时,您必须配置范围并选择日志视图。使用 Log Analytics 页面时,您可以查询日志视图。

如需使用日志浏览器查询日志视图,请执行以下操作:

  1. 在 Google Cloud 控制台中,转到 Logs Explorer 页面。

    前往 Logs Explorer

    如果您使用搜索栏查找此页面,请选择子标题为 Logging 的结果。

  2. 选择要搜索日志条目的资源:

    • 当工具栏显示 Project logs 时,展开菜单,选择 Log view,然后选择要查询的日志视图。

    • 当工具栏显示 1 个日志视图之类的内容时,展开菜单,选择日志视图,然后选择要查询的日志视图或日志视图。

    • 否则,工具栏会显示 图标和日志范围的名称,例如 _Default。展开菜单,选择日志视图,然后选择要查询的日志视图。

如需了解详情,请参阅 Logs Explorer 文档。

后续步骤

如需了解如何控制对日志条目中特定字段的访问权限,请参阅配置字段级访问权限