使用 BindPlane 监控本地资源

Last reviewed 2024-08-02 UTC

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

  • 使用 BindPlane 记录本地资源:了解 Cloud Logging 如何支持从本地资源进行日志记录。
  • 使用 BindPlane 监控本地资源(本文档):了解 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:BindPlane for Google、自托管、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 支持在选定版本的 Windows、Linux 和 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 将资源部署到 Google Cloud 和 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 集群指标

如果您已设置 GKE 集群,则 GKE 集群指标会显示在 Kubernetes 集群页面Kubernetes 工作负载页面中。您可以查看 Monitoring 中运行的 Kubernetes 组件的多个视图。每个 pod 都可以使用指标、日志和配置。

如需了解详情,请参阅查看可观测性指标

AKS 集群指标

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

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

Metrics Explorer 可以为指标生成图表。 如需详细了解图表,请参阅使用 Metrics Explorer 创建图表

与 Monitoring 中的所有指标一样,您可以使用这些指标来构建显示多个图表的信息中心。信息中心可以显示由 AKS 生成、由 BindPlane 收集并存储在 Monitoring 中的指标。如需详细了解信息中心,请参阅查看和自定义 Google Cloud 信息中心

vSphere 本地集群指标

本示例的最后一部分介绍来自 vSphere 的数据库指标。来自 vSphere 的指标显示在 Monitoring 中,其使用方法与 Monitoring 中的任何其他指标一样。来自 vSphere 的 Oracle 指标显示在 Metrics Explorer 页面上的指标列表中。

与 Monitoring 中的所有指标一样,这些指标可用于构建提醒。提醒可以表示在 vSphere 中运行的 Oracle 生成的指标,这些指标由 BindPlane 收集,存储在 Monitoring 中。如需详细了解提醒,请参阅提醒概览

总结

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

后续步骤