确定待报告的服务器使用情况

通过 GCP Console 中提供的 Stackdriver logging 工具,您可以查看服务器历史使用情况数据。这非常有用,因此每次将特定节点中的虚拟机放置在物理服务器上时,您可以进行查看并获取该物理服务器 ID。

准备工作

如需在 Stackdriver Logging 上查看物理服务器的使用情况,您必须首先启用 Stackdriver Logging API,然后再将虚拟机启动到单租户节点,以便从头开始收集数据。如果您尚未启用日志记录功能,但已经启动了虚拟机,您仍然可以启用该服务,但您只能访问日志记录功能启用后收集的数据。

启用 Stackdriver Logging API

获取服务器 ID

如需获取单租户节点的物理服务器 ID:

  1. 转到 GCP Console 中的 Stackdriver Logging > 日志(日志查看器)页面:

    转到“日志查看器”页面

  2. 如果出现提示,请选择现有 GCP 项目。

  3. 在第一个下拉菜单中,选择 GCE 虚拟机实例

  4. 在第三个下拉菜单中,选择限制结果的时间限制。

  5. 在文本框中,输入 text:NotifyInstanceLocation

    过滤结果的屏幕截图

  6. 展开每个条目的结果并查找 serverIdserverId 是支持您的单租户节点的物理机器的唯一标识符。支持 n1-node-96-624 节点类型的物理服务器具有 56 个物理核心。

    服务器 ID 的屏幕截图

将许可数据导出到 BigQuery

您可以将系统事件信息导出到 BigQuery 数据集,以确定每个核心或每个插槽的使用情况:

  1. 在第一个下拉菜单中,确保勾选 GCE 虚拟机实例
  2. 点击“日志查看器”页面顶部的创建导出作业
  3. 输入接收器名称,选择 BigQuery 作为接收器服务并选择 BigQuery 数据集,从而创建数据接收器。

创建后,数据接收器将接收所有后续审核日志记录活动。这意味着 BigQuery 将收到服务器使用情况所有着眼未来的数据。请注意,设置 BigQuery 集成之前的任何数据都将无法访问。

用于在 BigQuery 中找出服务器使用情况的示例查询

本节假定您熟悉在 BigQuery 中运行查询

通过在 cloudaudit_googleapis_com_activity_[DATE] 表中进行以下查询,使用您的自定义映像找出一列实例:

-- QUERY TO IDENTIFY ALL INSTANCE IDs USING A SPECIFIC SOURCE IMAGE
SELECT resource.labels.instance_id, resource.labels.project_id, resource.labels.zone, disks.initializeparams.sourceimage
FROM `[MY_BYOL_PROJECT_SINK_NAME].cloudaudit_googleapis_com_activity_*`, UNNEST(protopayload_auditlog.request_instances_insert.disks) AS disks
WHERE disks.initializeparams.sourceimage LIKE '%[BYOL_IMAGE_NAME]%'

接下来使用虚拟机实例通过下列查询找出每个实例的主机

-- QUERY TO IDENTIFY ALL SERVER IDs USED BY A PROJECT
SELECT protopayload_auditlog.metadata_audit_gceinstancelocationmetadata.serverid, protopayload_auditlog.metadata_audit_gceinstancelocationmetadata.timestamp,
56 AS physical_cores
FROM `[MY_BYOL_PROJECT_SINK_NAME].cloudaudit_googleapis_com_system_event_*`
GROUP BY 1,2

联合查询示例如下:

-- QUERY TO IDENTIFY ALL INSTANCE IDs USING A SPECIFIC SOURCE IMAGE
SELECT
resource.labels.instance_id, protopayload_auditlog.metadata_audit_gceinstancelocationmetadata.serverid as server_id, protopayload_auditlog.metadata_audit_gceinstancelocationmetadata.timestamp,
56 AS physical_cores,
2 AS physical_sockets
FROM `[MY_BYOL_PROJECT_SINK_NAME].cloudaudit_googleapis_com_system_event_*`
WHERE resource.labels.instance_id IN (
SELECT resource.labels.instance_id
FROM `[MY_BYOL_PROJECT_SINK_NAME].cloudaudit_googleapis_com_activity_*`, UNNEST(protopayload_auditlog.request_instances_insert.disks) AS disks
WHERE disks.initializeparams.sourceimage LIKE '%[BYOL_IMAGE_NAME]%')
GROUP BY 1,2,3
ORDER BY 1 ASC,3 ASC;

其中:

  • [MY_BYOL_PROJECT_SINK_NAME] 是您创建的数据接收器的名称。
  • [BYOL_IMAGE_NAME] 是用于自带许可的映像的名称。

如需了解如何使用通配符选择日期以及在 BigQuery 上查询 Cloud 审核日志的其他有用提示,请查看 Cloud 审核日志文档

后续步骤

此页内容是否有用?请给出您的反馈和评价:

发送以下问题的反馈:

此网页
Compute Engine 文档