使用 BindPlane 监控本地资源

本文档是由两篇文章组成的系列文章中的一篇,它们介绍了如何将 Cloud Logging 和 Cloud Monitoring 服务扩展至本地基础架构和应用。

  • Cloud Logging:了解 Cloud Logging 如何支持从本地资源进行日志记录。
  • Cloud Monitoring(本文档):了解 Cloud Monitoring 如何支持监控本地资源。

出于以下原因,您可以考虑使用 Logging 对本地资源进行日志记录,并使用 Monitoring 监控本地资源:

  • 在将基础架构迁移至 Google Cloud 时,您需要一个临时解决方案,并且您需要在本地资源停用前对其进行监控。
  • 您可能拥有一个多样化的计算环境,包含多个云和本地资源。

无论是哪种情况,您都可以借助 Logging API、Monitoring API 和BindPlane 来深入了解您的本地资源。本文档适用于希望为 Google Cloud 资源和其余的本地基础架构及应用制定监控策略的 DevOps 人员、经理和高管。

使用 Monitoring 提取指标

您可以通过以下两种方式将指标提取至 Monitoring:

  • 使用 observIQ 中的 BindPlane 工具从本地或其他云来源中注入指标
  • 使用 OpenCensus 向 Cloud Monitoring API 写入指标。

使用 BindPlane 提取指标

下图的架构展示了 BindPlane 如何收集指标以及这些指标如何被提取到 Monitoring 中。

使用 Monitoring 和 BindPlane 监控本地资源的架构。

observIQ 提供多个版本的 BindPlane:开源(自托管)、SaaS 和企业。如需详细了解这些版本,请参阅 BindPlane 比较页面

优点:

  • 要求对应用进行配置而不是检测,缩短了实现时间。
  • 包含在使用 Monitoring 的费用中。
  • Monitoring 产品和支持服务支持的配置。
  • 可扩展到默认配置未提供的指标。

缺点:

  • 需要使用 observIQ BindPlane 工具将指标传递至 Monitoring,这会增加整个系统的复杂性。

此选项是推荐方法,因为它需要的工作量最小。此解决方案只需要进行配置而非开发。

使用 OpenCensus 写入 Monitoring API

下图的架构展示了 OpenCensus 如何收集指标以及这些指标如何被提取到 Monitoring 中。

使用 Monitoring API 直接监控本地资源的架构。

直接使用 Monitoring API 意味着您需要向应用添加插桩代码,以将指标直接发送至 API。您可以直接使用 Monitoring API 写入指标,或使用适用于 OpenCensus 的 Monitoring 导出器来执行应用插桩。OpenCensus 是一个开源项目,用于定义跟踪记录和指标的标准数据结构。使用 OpenCensus 的好处在于它支持包括 Monitoring 在内的多个后端。使用 OpenCensus 还可以实现使用 Monitoring API 的所有低层级技术细节。

优点:

  • 灵活性高,因为使用 OpenCensus 导出器可以轻松执行所需的检测

缺点:

  • 需要编写自定义代理为基础架构指标提供独立的解决方案。
  • 需要检测应用,这可能意味着更高的执行成本。
  • 需要开源库。

此选项不是推荐方法,因为它需要的工作量最大,并且不包括基础架构指标。

使用 BindPlane

本文档介绍如何使用 observIQ 中的 BindPlane 工具将指标注入到 Monitoring。BindPlane 服务的工作原理如下:定义一系列来源,提取指标,然后将指标发送到目标位置 Monitoring。BindPlane 支持 Compute Engine、Amazon Elastic Compute Cloud (Amazon EC2)、Linux、Windows 和 Kubernetes 来源。

来源、收集器和目标位置

BindPlane 具有以下特性:

  • 来源:生成指标的项,例如 Google Kubernetes Engine (GKE)、Amazon Elastic Container Service for Kubernetes (Amazon EKS) 或 Microsoft Azure Container Service。
  • 收集器:远程监控环境并将指标数据转发到 BindPlane 的轻量级进程。
  • 目标位置:服务,BindPlane 会将指标转发到这些服务。在这种情况下,目标位置是使用 Monitoring API 将指标写入 Monitoring 的 BindPlane 进程。

如需详细了解来源、收集器和目标位置,请参阅 BindPlane 简介

使用情形示例

例如,ExampleOrganization 将资源部署到 GCP 和 Microsoft Azure,并使用 vSphere 部署本地资源。Google Cloud 中部署了一个 GKE 集群和一个简单的演示应用,用于运行公司的网站。在 Microsoft Azure 环境中,Azure Kubernetes Service (AKS) 运行着一组微服务,为外部开发者提供 REST API 端点。在 vSphere 环境中,MySQL、Oracle 和 Microsoft SQL Server 支持多个企业应用。

通过多个环境中的资源,ExampleOrganization 希望能够监控每一个组件,无论其部署位置如何。使用 BindPlane 将指标从各个环境发送到 Logging 和 Monitoring,将所有指标都集中到一个位置,便于进行监控和提醒。

将指标从 BindPlane 发送到 Monitoring

BindPlane 设置完成并开始发送指标后,这些指标会发送到您的 Monitoring 工作区。然后,就像 Monitoring 中的任何指标或时间序列一样,您可以使用 Monitoring 从时间序列中查看、配置、提醒和构建信息中心。如需了解详情,请参阅指标、时间序列和资源

在 Monitoring 中使用指标

在前面的示例中,BindPlane 被配置为从 Google Cloud、Microsoft Azure 和本地源发送指标。Monitoring 中显示以下三种指标:

  • GKE 集群指标
  • AKS 集群指标
  • vSphere 本地数据库指标

GKE 集群指标

Google Kubernetes Engine 页面上的 Monitoring 中的 GKE 集群指标显示 Monitoring 工作区中运行的 Kubernetes 组件的三个视图,即基础架构、工作负载和服务视图。有四个部署到集群的服务是报告指标。

Monitoring 监控的四种服务的视图。

每个 pod 都可以使用指标、日志和配置。

特定服务的 pod 详情视图。

AKS 集群指标

AKS 指标被收集到相同的 Monitoring 环境中。这些指标显示在 Monitoring 中,并可用于 Monitoring 中的任何用途,包括信息中心、提醒和 Metrics Explorer。

Monitoring Metrics Explorer 提供了一种查找指标、过滤指标和根据指标构建图表的方法。请注意,BindPlane 发送的指标名称中包含 workload.googleapis.com/THIRD_PARTY_APP_NAME 前缀。

显示资源类型“通用节点”的 Metrics Explorer。

Metrics Explorer 可以为指标生成图表。

指标“CPU Used”的图表。

与 Monitoring 中的所有指标一样,您可以使用这些指标来构建信息中心,如下面的屏幕截图所示。信息中心显示由 AKS 生成的指标,这些指标由 BindPlane 收集,存储在 Monitoring 中,并显示在信息中心中。

显示四个图表的 AKS 信息中心。

vSphere 本地集群指标

本示例的最后一部分介绍来自 vSphere 的数据库指标。来自 vSphere 的指标显示在 Monitoring 中,其使用方法与 Monitoring 中的任何其他指标一样。您可以在 Metrics Explorer 中看到来自 vSphere 的 Oracle 指标。

Monitoring 中的 vSphere 指标。

与 Monitoring 中的所有指标一样,这些指标可用于构建提醒,如下面的屏幕截图所示。

基于触发器构建提醒的配置屏幕。

提醒显示由运行在 vSphere 中的 Oracle 生成的指标,这些指标由 BindPlane 收集,存储在 Monitoring 中,并用于配置提醒。

提醒政策窗口。

总结

Monitoring 提供信息中心、提醒和突发事件响应功能,帮助您深入了解自己的平台。结合使用 Monitoring 和 BindPlane,您可以深入了解自己的本地资源。

后续步骤