Google Cloud Platform 数据中心专业人员专区:管理

本文介绍 Google Cloud Platform 的管理和运营服务,以及这些服务与传统数据中心技术之间的比较情况。本文重点介绍以下服务类型:

  • 身份和访问权限管理
  • 日志记录(包括审核日志)
  • 监控
  • 资源预配

身份和访问权限管理

将工作负载迁移到 Cloud Platform 后,您可以继续使用常用的用户管理服务和工具(如 LDAP、Active Directory 或 G Suite 的管理服务)来管理您的最终用户。但是,对联网资源访问的管理方式与您通常采用的方式略有不同。

在 Cloud Platform 上,您可以使用 Google Cloud IAM 配置对虚拟资源的访问权限。Cloud IAM 并不直接管理身份,而是允许您为多个 Google 身份类型分配角色(即用户定义的访问权限集合)。支持的类型如下:

您也可以为非 Google 身份类型分配角色。为此,请将非 Google 类型绑定到一个 Google 身份类型,然后为该 Google 身份类型分配相应角色。如需了解详情,请参阅企业最佳做法

服务帐号

使用传统数据中心运行应用时,您通常需要创建一个独立身份,以供您的应用在运行时使用。然后,应用会使用该身份执行需要身份验证的操作(例如 API 调用)。

在 Cloud Platform 上,您可以通过使用服务帐号来实现上述模式。服务帐号是属于您的应用或 Google Compute Engine 虚拟机 (VM) 实例的特殊帐号,而非属于单个最终用户的帐号。您的应用使用服务帐号来调用 Google 服务的 API。您可以使用 Google Cloud ConsoleCloud IAM APICloud SDK 为您的 Cloud Platform 项目创建自定义服务帐号。

如需详细了解服务帐号,请参阅服务帐号

Google 群组

您可以使用 Google 群组对一组用户应用某一角色。 您只需创建一个 Google 群组,将您的 Google 帐号或服务帐号添加到该群组,然后将您的 Cloud IAM 角色应用于该群组。

如需详细了解 Google 群组,请参阅 Google 群组帮助中心

日志记录

Cloud Platform 的日志记录功能与传统数据中心环境中的日志记录功能几乎完全相同。要收集日志,您需要在每个虚拟机上安装日志记录代理。日志记录代理会记录机器及其应用的相关信息,然后将日志集中发送到一个位置并编入索引。对日志进行汇总并编入索引后,您就可以处理、分析或直观呈现相关日志。

Cloud Platform 提供了一套功能强大的集成式日志记录服务。在 Cloud Platform 堆栈中,您可以使用 Stackdriver Logging 服务将来自 Compute Engine 虚拟机实例和其他 Cloud Platform 资源的日志汇总到一个集中位置,并将这些日志编入索引。您可以在 Cloud Console 的内置日志查看器中搜索和过滤日志,也可以将日志流式传输到其他 Cloud Platform 端点,例如 Google Cloud Storage、Google BigQuery 和 Google Cloud Pub/Sub,以便执行进一步的处理和分析。

收集日志

要从 Compute Engine 虚拟机实例收集日志,请在每个实例上安装 Stackdriver Logging 代理。然后,这些代理会自动开始将其日志数据发送到 Stackdriver。

如果您计划维护一个混合架构,以在其中维护 Cloud Platform 上的一些资源和其他平台上的资源,您仍然可以利用 Cloud Platform 的日志记录服务。例如,Fluentd 社区插件页面包含一组用于将汇总的日志流式传输到 Stackdriver Logging API、BigQuery、Cloud Storage 和 Cloud Pub/Sub 的插件。 同样,Logstash 输出插件页面也包含一组用于将日志流式传输到 BigQuery 和 Cloud Storage 的插件。

如果您的混合架构包含其他云服务上的虚拟机,您也可以使用 Stackdriver Logging。具体来说,您可以将 Stackdriver Logging 代理直接安装在 Amazon EC2 实例上。

将日志编入索引并进行存储

从 Compute Engine 实例收集日志时,Stackdriver Logging 会将日志存储起来并编入索引。Stackdriver Logging 会将日志保留 30 天。要存储您的日志以供日后进行处理、分析或审核,您可以将 Stackdriver Logging 设置为自动将日志导出到其他 Cloud Platform 服务,具体包括:

  • Cloud Storage,这是 Cloud Platform 的分布式对象存储服务。Cloud Storage 是一种具备高度的可用性和冗余性的全球性存储服务。Cloud Platform 还额外提供了长期存储类别,旨在优化不常访问数据的成本。如需了解详情,请参阅存储一文。
  • BigQuery,这是 Cloud Platform 的数据仓库服务。BigQuery 是一种完全托管式、仅用于附加的数据库,可在几秒钟内对数十亿行数据执行复杂查询,
  • Cloud Pub/Sub,这是 Cloud Platform 的基于发布者/订阅者的消息传递服务。借助 Cloud Pub/Sub,您可以将日志流式传输到第三方服务或您自己的自定义端点。

分析和处理日志

使用传统数据中心时,您必将面临大量分析和处理任务与其他任务争用资源的情况,并会受到同样的前期资本投资和容量限制的约束。而在 Cloud Platform 上,您不会遇到这些问题。您可以根据实际所需进行配置和付费,无需担心预留时间、核心或存储资源。

Cloud Platform 上的日志分析和处理功能以灵活性为设计宗旨。 您可以利用 Cloud Platform 的日志分析和处理工具栈,其中包括以下内容:

  • Stackdriver 日志查看器
  • BigQuery
  • Google Cloud Dataproc
  • Google Cloud Dataflow

如果您希望使用现有的分析和处理工具,可以通过在 Compute Engine 虚拟机实例上进行相关设置来实现此目的。您还可以将 Cloud Platform 日志记录堆栈集成到现有的分析和处理流水线中。

使用 Stackdriver 日志查看器和 BigQuery 分析日志

Cloud Console 提供了一个内置的 Stackdriver 日志查看器,供您搜索和过滤已有的日志记录数据。跨大规模数据集执行大规模分析时,您可以将日志流式传输或导出到 BigQuery 中。与庞大的 MapReduce 作业(可能需要几分钟或几小时的时间)不同,在某些情况下,BigQuery 能够在几十秒内对数 TB 的日志执行查询,让您可以快速识别应用异常、执行审核日志分析、对日志执行趋势分析,等等。

使用 Cloud Dataproc 和 Cloud Dataflow 处理日志

如果您需要先处理日志,然后再进行分析,则可以将日志导出到 Cloud Pub/Sub 或 Cloud Storage,然后使用 Cloud DataprocCloud Dataflow 来处理它们。使用 Cloud Dataproc 或 Cloud Dataflow 处理完日志后,您可以将结果发送到 BigQuery,以进行交互式或批处理分析。

Cloud Dataproc 是 Cloud Platform 的托管式 Apache Hadoop 和 Apache Spark 服务。如果您已在使用 Hadoop 和 Spark,则可以在 Cloud Dataproc 上重复使用现有作业,而无需费心提前获取硬件资源。您可以将原始日志和处理后的日志存储在 Cloud Storage 中,因此,您还可以关停并未使用的 Cloud Dataproc 集群。Cloud Dataproc 集群的费用仅取决于您使用的虚拟 CPU 资源和这些资源的使用时长。

您还可以考虑使用 Cloud Dataflow,这是一种完全托管的流处理和批处理服务。Cloud Dataflow 以 Apache Beam 为基础,是真正的无服务器解决方案。Cloud Dataflow 可动态地按需预配和分配资源,从而最大限度地缩短延迟时间,同时保持高使用效率。如需详细了解如何将 Cloud Dataflow 集成到日志处理流水线中,请参阅使用 Cloud Dataflow 处理海量日志

直观呈现日志

Google 提供了两种可用于直观呈现日志数据的托管式服务:

  • Cloud Datalab,该服务以 Jupyter 笔记本模型为基础构建,可用于查询和直观呈现 BigQuery 和 Cloud Storage 中存储的数据。此外,由于 Cloud Datalab 是基于 Jupyter 笔记本构建的,因此您还可以借助一个现成可用的庞大生态系统快速上手。
  • Google 数据洞察 360,该服务以 BigQuery 为后盾,支持创建可自定义且可共享的报告。

此外,多项 Cloud Platform 合作伙伴直观呈现服务提供了适用于 BigQuery 的原生连接器,包括 TableauBIMEre:dash。如需了解详情,请参阅 BigQuery 合作伙伴

最后,为了实现最大程度的自定义,您可以使用 BigQuery API 和所选的 JavaScript 图表库,以 BigQuery 为基础构建一个信息中心。如需了解详情,请参阅创建 BigQuery 信息中心

费用

Stackdriver Logging 提供基本层级(每月最多免费使用 5 GB)和高级层级。高级层级根据每项监控资源每月的使用小时数按比例收费。如需了解详情,请参阅 Google Stackdriver 价格正式发布 (Announcing pricing for Google Stackdriver) 博文。

如果将日志导出到 Cloud Storage、BigQuery 或 Cloud Pub/Sub,您还需要支付这些服务的使用费用。如果将日志导出到 BigQuery,您还需要支付一笔小额数据流式传输费用。如需了解详情,请参阅 BigQuery 价格

审核

Cloud Platform 内置了审核日志记录功能,可让您轻松地集成现有的审核日志记录解决方案。如需了解目前哪些服务会生成审核日志,请参阅 Google 云端审核日志

虚拟机实例日志记录

如果您使用标准的操作系统原生审核日志解决方案,例如 Linux 中的 syslog 或 Windows 中的 Windows 事件日志,则可以通过在 Compute Engine 上创建 Linux 或 Windows 虚拟机实例来设置这些解决方案。此外,您还可以在 Compute Engine 实例上部署首选的第三方解决方案。

Cloud Platform 资源日志记录

Cloud Platform 还内置了审核日志记录资源。 Cloud Platform 有两种类型的审核日志:

  • 管理员活动审核日志,其中包含与修改服务或项目的配置或元数据的每个 API 调用或管理操作对应的条目。这种类型的日志始终处于启用状态。
  • 数据访问审核日志,其中包含与以下事件的每个实例对应的条目:

    • 用于读取服务或项目的配置或元数据的 API 调用或管理操作。
    • 用于创建、修改或读取由服务管理的用户提供数据(例如存储在数据库服务中的数据)的 API 调用或管理操作。

在大多数 Cloud Platform 服务中,数据访问审核日志默认处于停用状态,因为此类日志的数量可能比管理员活动日志大得多。此外,数据访问日志也比管理员活动日志更受限制。默认情况下,只有项目所有者和具有非公开日志查看者角色的用户才能访问数据访问日志。管理员活动日志对所有项目成员可见。

借助 Stackdriver Logging,您可以通过 Cloud IAM(Cloud Platform 的身份和访问权限管理层)来管理对审核日志的访问。如需了解详情,请参阅身份和访问权限管理部分。

与其他 Stackdriver Logging 日志一样,系统会默认保留审核日志 30 天。如果要延长审核日志的保留时间,您可以将审核日志导出到 BigQuery、Cloud Storage 和 Cloud Pub/Sub。

与第三方服务集成

多种第三方日志记录解决方案(如 Splunk)提供了与 Cloud Platform 的审核日志记录服务集成的插件。

监控

和日志记录一样,云端环境中的监控服务也使用各数据中心环境通用的模型。您需要在要监控的虚拟机上安装监控代理。然后,该监控代理会将指标集中发送到一个位置。在此处,您可以定义提醒配置并创建信息中心,以实时地直观呈现您的指标。

对于监控任务,Cloud Platform 提供了 Stackdriver Monitoring,这是一个功能齐全的监控框架。和日志记录一样,您也可以使用现有的监控工具和服务,例如 Splunk、DataDog、Elastic/ELK 堆栈、Sensu 或 Nagios。

指标收集

要从 Compute Engine 虚拟机实例收集日志,请在每个实例上安装 Stackdriver Monitoring 代理。然后,这些代理会自动将指标发送到 Stackdriver Monitoring。

默认情况下,Stackdriver Monitoring 监控每个实例的机器资源,例如 CPU 负载和网络 I/O。但是,只需通过少量的额外配置,您还可以让 Stackdriver Monitoring 监控许多常见的第三方应用,包括 Apache Web Server、MongoDB、NGINX、Redis 和 Varnish。如需了解详情,请参阅监控第三方应用

除了从 Compute Engine 虚拟机实例收集指标以外,Stackdriver Monitoring 还会自动从其他多项 Cloud Platform 服务收集指标。Stackdriver Monitoring 代理也可以直接安装到 Amazon EC2 实例上,并且 Stackdriver Monitoring 也可以配置为从多项 Amazon Web Services (AWS) 服务收集指标。如需查看 Stackdriver Monitoring 中可用指标的完整列表,请参阅指标列表

您还可以创建自定义指标,然后为您的应用集成这些指标,以通过 Monitoring API 将其发送到 Stackdriver Monitoring。

Stackdriver Monitoring 会将指标保留六周。

提醒

Stackdriver Monitoring 可以配置为向多个端点发送提醒。默认情况下,支持的提醒端点包括:

如果您希望向非 Stackdriver Monitoring 原生支持的端点发送提醒,还可以配置 webhook。如需了解详情,请参阅配置 Webhook

直观呈现

与大多数监控框架一样,Stackdriver Monitoring 也提供了一个可自定义的信息中心界面,通过该界面,您可以采用一种有意义而又实用的方式直观呈现事件。您可以创建图表来显示给定资源类型的特定指标、汇总指标、基于给定资源 ID 的指标,等等。此外,您还可以查看索引事件日志和事件列表。

Cloud Console 还会为每项服务提供一些常用指标(如 CPU、磁盘使用率和网络流量)的直观呈现方案。与 Stackdriver Logging 一样,您还可以使用 Cloud Datalab 来直观呈现和操纵指标数据。

费用

Stackdriver Monitoring 提供基本层级(每月最多免费使用 5GB)和高级层级。高级层级根据每项监控资源每月的使用小时数按比例收费。如需了解详情,请参阅 Google Stackdriver 价格正式发布 (Announcing pricing for Google Stackdriver) 博文。

资源预配

本部分介绍如何在 Cloud Platform 上预配虚拟资源,以及版本控制在预配流程中的作用。

虚拟机实例预配

Compute Engine 内置了一些可简化实例预配的功能。您可以创建机器配置文件(称为实例模板),然后将其分配给实例组,以根据需要创建数十个或数百个相同的实例。

Compute Engine 内置的自动调节程序可让这些组中的虚拟机实例数实现自动调节。要使用自动调节程序,请定义要在给定时间运行的实例数上下限,然后定义自动调节程序创建或销毁实例所依据的指标。您可以将自动调节程序设置为根据 CPU 利用率、负载平衡器容量或您自己的自定义指标进行调节。如需了解详情,请参阅自动调节实例组

一般资源预配

Google Cloud Deployment Manager 可以自动部署所有 Cloud Platform 资源。 与其他配置管理工具(如 Puppet 和 Chef)一样,您可以在部署模板中指定相关资源,然后 Deployment Manager 会使用此模板来对这些资源进行实例化和管理。 您可以采用多种格式指定部署模板,包括 YAML、Python 和 Jinja2。

Deployment Manager 还可与您现有的机器配置自动化工具搭配使用,例如 Chef、Puppet、Ansible 或 Terraform。如需查看 Puppet 的使用配置示例,请参阅使用 Cloud Deployment Manager 和 Puppet 自动执行配置管理

版本控制和源代码库

在 Cloud Platform 上,如果您希望使用现有的版本控制解决方案,则可以通过以下方式来实现此目的:在 Cloud Platform 上托管并运行相关解决方案,或者连接到外部托管的服务(如 GitHub 或 Bitbucket)。

对于熟悉 Git 的用户,Google 还提供了 Google Cloud Source Repositories,这是一个托管在 Cloud Platform 上且功能齐全的专用 Git 代码库。 Cloud Source Repositories 可以作为远程代码库添加到本地 Git 代码库中,也可以在 GitHub 或 Bitbucket 上进行托管。 此外,Cloud Source Repositories 还提供了一个源编辑器,您可以使用该编辑器从 Cloud Console 中浏览、查看、修改和提交对代码库文件所做的更改。

费用

您可以免费使用 Deployment Manager,但需要支付您使用 Deployment Manager 部署的任何收费资源的费用。

Cloud Source Repositories 在测试版阶段可免费使用。

后续事项

请查看其他 Google Cloud Platform 数据中心专业人员专区文章: