监控组件选型指南

在安装集群监控时,平台提供了两种监控组件供您选择:VictoriaMetrics 和 Prometheus。本文将详细介绍这两种组件的特点和适用场景,帮助您做出最合适的选择。

重要说明

  • 安装集群监控组件时,只能选择 VictoriaMetrics 或 Prometheus 其中之一。
  • 从 3.18 版本开始,VictoriaMetrics 已升级为 Beta 状态,满足生产环境使用条件。
  • VictoriaMetrics 适用于高可用性要求和多集群监控的场景。
  • Prometheus 适用于单集群监控场景,尤其是规模较小的情况。

组件列表

Prometheus 相关组件

组件名称功能描述
Prometheus Server核心服务器,负责采集、存储和查询监控数据
Exporters监控数据采集组件,通过 HTTP 接口暴露监控指标
AlertManager告警管理中心,处理告警规则和通知
PushGateway支持监控数据的推送模式,用于特殊网络环境中的数据传输

VictoriaMetrics 相关组件

组件名称功能描述
VMStorage监控数据存储引擎
VMInsert数据写入组件,负责数据分发和存储
VMSelect查询服务组件,提供数据查询能力
VMAlert告警规则评估和处理组件
VMAgent监控指标采集组件

架构对比

Prometheus 架构

Prometheus 是一个成熟的开源监控系统,是 CNCF 继 Kubernetes 之后的第二个毕业项目。它具有以下特点:

  • 强大的数据采集能力。
  • 灵活的查询语言 PromQL。
  • 完善的生态系统。
  • 支持千节点规模的集群监控。

VictoriaMetrics 架构

VictoriaMetrics 是新一代高性能时序数据库和监控解决方案,具有以下优势:

  • 更高的数据压缩比。
  • 更低的资源消耗。
  • 原生支持集群高可用性。
  • 更简单的运维管理。

功能对比

功能PrometheusVictoriaMetrics说明
高可用性安装VictoriaMetrics 支持真正的集群高可用性,数据一致性更好
单节点安装两者均支持单节点安装模式
长期数据存储需要远程存储原生支持VictoriaMetrics 更适合长期数据存储
资源效率较高更好VictoriaMetrics 具有更好的资源利用率
Community 支持非常成熟快速发展Prometheus 拥有更大的 Community 生态系统

安装方案建议

监控安装架构概览

上图展示了平台支持的监控组件的安装架构和数据流。平台提供以下两种安装方式供选择:

注意:更换监控组件时,请确保现有组件已完全卸载,监控数据不支持跨组件迁移。

Prometheus 安装方式

此方式对应上图中 cluster4 的架构:

  • 使用 Prometheus 组件采集和处理监控数据。
  • 通过监控图表查询和展示数据。
  • 适用于单集群场景。

VictoriaMetrics 安装方式

VictoriaMetrics 支持以下两种安装模式:

  1. 单集群安装模式

    • 对应上图中 cluster2 的架构。
    • 所有 VictoriaMetrics 组件安装在同一集群中。
    • 使用 VMAgent 采集数据并写入 VictoriaMetrics。
    • VMAlert 负责告警规则评估。
    • 通过监控图表查询和展示数据。 提示:当数据规模低于每秒 100 万时,建议使用此模式。
  2. 多集群安装模式

    • 对应上图中 cluster1/cluster2/cluster3 的架构。
    • 在业务集群中安装 VMAgent 作为数据采集智能体。
    • VMAgent 将数据写入中心监控集群中的 VictoriaMetrics。
    • 中心监控集群是专用的业务集群,而不是 global 集群。global 集群安装自己的完整组件集,仅监控自身,从而使管理集群可用性和原生应用监控负载保持独立。
    • global 集群部署了容灾时,业务集群中的 VMAgent 不得指向主 global 集群或备 global 集群,因为监控数据不会在它们之间复制。
    • 支持跨多个集群的统一监控管理。 提示:在安装 VMAgent 之前,请确保监控集群中已安装 VictoriaMetrics 服务。

选型建议

适合使用 VictoriaMetrics 的场景

  • 高性能和可扩展性需求:适用于处理高吞吐量数据和长期存储的监控场景。
  • 成本效益考虑:需要优化存储和计算资源成本。
  • 高可用性要求:需要对监控组件提供高可用性保障。
  • 多集群管理:需要跨多个集群统一管理监控数据。

适合使用 Prometheus 的场景

  • 小规模单集群:监控规模较小,无高可用性要求。
  • 现有 Prometheus 用户:已拥有完整的 Prometheus 监控系统。
  • 简单稳定性要求:追求简单可靠的监控解决方案。
  • 深度生态系统集成:与 Prometheus 生态系统紧密集成,迁移成本高。