托管 Prometheus(VMP) 服务具备良好的开源生态亲和性,支持云原生监控,并支持开源社区提供的各种 SDK、Exporter,可以实现对各种环境、中间件、自定义应用的监控需求。本文为您介绍如何采用不同的方式,将您的业务接入托管 Prometheus 服务。
当您的业务部署在火山引擎时,托管 Prometheus 为您提供完善且便捷的产品功能,帮助您快速完成业务接入。若您使用自建 IDC 或第三方云厂商环境,托管 Prometheus 也同样提供采集器部署脚本、网络连通等功能,帮助您以托管 Prometheus 为核心构建多云统一指标观测平台。常见的业务部署环境和接入步骤如下所示:
托管 Prometheus 的主要功能模块和业务流程,如下图所示。针对业务接入场景,产品核心功能包括:
- VMP 工作区:指标的主要存储单元,所有的指标发送和查询均需要明确对应的工作区。详情请参见 工作区选择,工作区规格。
- Prometheus-agent:用于采集容器服务(VKE)集群或自建 Kubernetes 集群基础设施、业务指标的采集器,支持将采集到的指标发送至 VMP 工作区。
- 集成中心:托管 Prometheus 提供的云产品接入中心,用于快速接入火山引擎云产品。详情请参见 集成中心。
容器服务(VKE)集群是最常见的业务部署环境,将 VKE 集群接入托管 Prometheus 的步骤如下:
- 部署采集 Agent:在集群中部署 Prometheus-agent 组件,并绑定工作区。详情请参见 容器服务接入。
说明
使用 Prometheus-agent 组件时,建议遵循如下操作:
- 开启自动扩缩容,避免后续规模增长导致 Agent 发生 OOM 等情况。
- 暴露指标。根据需要,开启集群中不同资源的监控功能,暴露对应的指标。
云服务器(ECS)也是常用的业务部署环境,您可以在 ECS 环境中部署业务。托管 Prometheus 支持使用托管采集器方案,采集目标 ECS 上的基础资源数据和业务数据。
云服务器支持通过 2 种方式接入托管 Prometheus,其主要区别如下表所示。
如果您需要使用托管 Prometheus 监控火山引擎其他云产品,支持的采集方案如下:
- 云监控接入:对于已经接入云监控的云产品,支持通过将云监控接入托管 Prometheus,实现一站式、全链路的收集、存储,全面统一的监控管理体验。详情请参见 云监控接入。
- 已接入 VMP 的云产品:部分火山引擎云服务已经直接接入托管 Prometheus,只需绑定工作区即可。详情请参见 其他云服务接入。
当您的业务部署在自建 IDC 机房或第三方云中时,也可以使用托管 Prometheus 实现基础资源和业务进行监控。接入步骤如下:
注意
由于公网访问存在网络链路长、可靠性差的问题,一般仅建议在初期验证的时候使用,避免使用在线上生产环境。
说明
部署 VM Agent 采集器的步骤如下:
- (可选)暴露指标。根据需要,暴露 Kubernetes 集群的基础指标和业务指标。
如果您的业务部署在第三方云的产品中,也可以使用托管 Prometheus 实现对云产品和业务的监控。例如:监控腾讯云资源。 托管 Prometheus 兼容开源 Prometheus 的查询语法,支持使用 PromQL 语句查询产品指标。查询方式包括: - 使用托管 Promethesu 的 Explore 功能查询指标,参考 指标查询。
常见火山引擎产品的指标清单,如下表所示。
- 托管 Prometheus 为您提供常见产品的监控看板,包括:
- 使用 Grafana。您可以自主部署 Grafana,并构建监控看板。支持部署在容器服务 VKE,也可以部署在自建的 Kubernetes 集群。
Prometheus 一般使用定时拉取(Pull)指标接口的方式:
- 如果服务本身引用了 Prometheus SDK,则可以自行开发并暴露 metrics 端口。
- 如果服务没有暴露,可使用 Exporter 调用服务本身的接口或数据获取原始指标,然后转换成 Prometheus 格式指标暴露 metrics 端口。
大部分场景下,托管 Prometheus 使用 Prometheus-agent 组件进行指标的采集,并发送至指定的工作区。
原生 Prometheus 支持配置各种服务发现的 job,详情请参见 官方文档。 在 Kubernetes 集群中,一般会引入 Prometheus-operator,使用 CRD 定义采集配置。详情请参见 官方文档。 常用的 CRD 包括:
除此之外,也支持使用 Service/Pod Annotation 的方式快速定义采集配置。详情请参见 服务发现。