You need to enable JavaScript to run this app.
文档中心
托管 Prometheus

托管 Prometheus

复制全文
下载 pdf
资源与业务监控
监控自定义 Kubernetes 集群
复制全文
下载 pdf
监控自定义 Kubernetes 集群
多云集群监控是用户常见的诉求,本文介绍如何使用托管 Prometheus 监控自定义 Kubernetes 集群。
背景信息
多云集群监控面临的挑战
使用多云集群(多厂商集群、公有云和自建集群混合等)可以为企业带来风险分散、成本优化、资源丰富、选择灵活等优势。但同时,跨厂商、跨地域的集群架构也会带来很多问题,尤其在多云监控方向,尤为明显。包括:
  • 数据聚合和可视化挑战:监控数据分散在不同的地理位置,无法有效地聚合和统一展示。导致无法构建一个全局视角的监控大盘,管理员也无法一目了然地了解所有集群的状态和性能。
  • 资源和成本管理:多云集群意味着需要搭建多个监控系统,这会导致更高的资源消耗和监控成本。
  • 配置和管理复杂性:多云集群可能需要重复的配置和管理策略,增加了管理的复杂性。同时,由于监控系统割裂,无法确保监控的一致性,因此也就无法及时发现可能出现的故障和问题。
  • 故障诊断和响应:在多云环境中,定位和诊断问题可能更加困难,因为可能涉及到跨云的资源和服务。需要建立一致的监控、故障响应和升级流程,才能确保及时解决问题,减少业务影响。
为解决多云集群带来的监控一致性问题,托管 Prometheus 提供了多云集群监控方案和采集组件。方便用户在实现云服务监控的同时,也能够实现其他厂商集群、自建集群的接入和统一监控。
说明
本文采用最简单的方式,介绍了如何快速地完成多云集群监控配置。相关组件均采用了默认规格,也未涉及挂载持久存储等操作。目的是方便用户能够快速了解自定义集群接入托管 Prometheus 的方法。
监控方案
托管 Prometheus 为您提供了 2 种开箱即用的指标采集方案,支持直接在标准 Kubernetes 集群中安装采集组件,并对接托管 Prometheus 工作区,完成多云集群的相关指标的采集和汇入,实现多云集群统一监控。详情请参见 自建 Kubernetes 集群接入
alt
前提条件
  • 注册并开通容器服务(VKE)。
  • 已在集群中安装 ingress-nginx 组件,并配置内网负载均衡,详情请参见 安装组件
  • 已创建托管 Prometheus 工作区,详情请参见 创建工作区
  • 已开通云企业网,并打通火山引擎内网和自定义集群所在网络。详情请参见 云企业网文档
  • 已自建或创建自定义集群。
  • 自定义集群的 Kubernetes 版本为 v1.20~v1.24,其他版本的集群可能存在兼容性问题。
  • 已创建命名空间,本文中以 volcano-metrics 为例。
注意
请勿在自定义集群中安装开源 Prometheus 或其他监控系统的采集组件,这些组件可能与托管 Prometheus 提供的采集器组件冲突,导致组件异常。
  • 在本地环境(Linux/Mac)中能够使用 kubectl 正确连接集群。包括 VKE 集群和自定义 Kubernetes 集群。
配置步骤
步骤一:在 VKE 集群中配置工作区代理
托管 Prometheus 工作区提供 Remote Write 地址,当用户使用云企业网将自定义集群所在私有网络和火山引擎网络打通后,可使用代理的方式长期将大规模指标数据写入 VMP。
  1. 在左侧导航栏中,选择 服务与路由 > 服务。单击 使用 Yaml 创建,创建服务。通过ExternalName类型的服务访问托管 Prometheus 工作区,获取工作区地址请参见 获取工作区地址
apiVersion: v1
kind: Service
metadata:
name: vmp-service
spec:
externalName: write.prometheus-cn-beijing.ivolces.com # 托管 Prometheus 工作区地址中的域名,不同地域工作区的域名不同
ports:
- name: vmp
port: 80
protocol: TCP
targetPort: 80
sessionAffinity: None
type: ExternalName
  1. 在左侧导航栏中,选择 工作负载 > 对象浏览器。 单击 使用 Yaml 创建,创建路由规则。指定自定义域名和服务的映射关系。
  • 类型 下拉菜单中选择 自定义
  • Yaml 配置框内输入 Yaml 配置。
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: vmp-ingress
spec:
ingressClassName: nginx # 集群中 Ingress Controller Class 名称,使用该配置来选择 ingress 实例
rules:
- host: vmp-test.com # 访问托管 Prometheus 工作区的自定义域名
http:
paths:
- backend:
service:
name: vmp-service # 服务名称,需要与服务的配置相同
port:
number: 80
path: /
pathType: Prefix
  1. 配置完成后,您可以在 服务与路由 > 路由规则 界面中,查看 Ingress 对应的私网 IP 地址。
alt
步骤二:在自定义集群中配置 DNS
为保证部署在自定义集群中的采集器能够正确识别自定义域名,您需要在自定义集群中配置 CoreDNS,指定自定义域名和 Ingress 内网 IP 地址之间的解析关系。
  1. 使用 kubectl 连接自定义集群。
  1. 执行以下命令,修改 CoreDNS 的配置文件。
kubectl edit configmap -n kube-system coredns
在配置文件中增加自定义的 Hosts,例如192.168.48.3 vmp-test.com
Corefile: |
.:53 {
errors
health {
lameduck 15s
}
ready
hosts {
192.168.48.3 vmp-test.com
fallthrough
}
prometheus :9153
forward . /etc/resolv.conf {
prefer_udp
}
cache 30
loop
reload
loadbalance
}
步骤三:在自定义集群中部署采集器
注意
火山引擎为您提供了 2 个开箱即用的采集方案,分别为 VMP Agent 和 VM Agent,本文以部署 VM Agent 为例。详情请参见 采集器方案概述
  1. 在本地环境中下载采集器部署脚本。详情请参见 获取脚本
  1. 使用 kubectl 连接自定义集群。
  1. 执行以下命令,部署 VM Agent 采集器。
./install.sh \
--agent vmagent \ # 采集器类型
--region cn-beijing \ # VMP 工作区所在地域
--namespace volcano-metrics \ # 部署采集器等组件的命名空间
--remote-write-url http://vmp-test.com/workspaces/b762e1a3-37***/api/v1/write \ # VMP 工作区的 Remote Write 地址。其中,域名需要修改为自定义的域名
--basic-auth-username username-demo \ # VMP 工作区 Basic Auth 认证模式下的认证用户名
--basic-auth-password password-demo # VMP 工作区 Basic Auth 认证模式下的认证密码
检查结果
查看组件状态
组件安装完成后,您可以登录自定义集群界面,查看采集器组件的工作状态,每个组件的名称、类型和作用说明如下表所示。
组件名称
负载类型
命名空间
说明
vmagent
StatefulSet
volcano-metrics
采集集群内 kubelet、kubelet-cadvisor 、kube-state-metrics 、node-exporter 暴露的指标。
vm-operator
Deployment
volcano-metrics
VM Agent 控制组件。
kube-state-metrics
StatefulSet
volcano-metrics
提供 Kubernetes 资源信息指标数据。
node-exporter
DaemonSet
volcano-metrics
提供节点资源信息指标数据。
查看 vm-operator 组件工作状态,以阿里云 ACK 为例。
alt
查看采集器工作状态,以阿里云 ACK 为例。
alt
查看 ingress 监控
使用代理的方式向托管 Prometheus 工作区写入监控数据,写入性能与 VKE 集群中的 ingress 实例性能密切相关。建议您通过 VKE 集群的可观测性功能,对 ingress 实例进行监控和运维。可参考如下文档:
alt
监控和告警
指标
您可以使用托管 Prometheus 的 Explore 功能来快速查询和展示指标数据。详情请参见 指标查询
alt
大盘
您可以自建 Grafana,并通过 Grafana 查看指标和创建大盘。包括:
告警
您可以在托管 Prometheus 的告警中心配置相关告警。详情请参见 创建告警规则
常见问题
无公网环境如何下载并部署采集器
托管 Prometheus 为您提供的采集器,默认保存在镜像仓库中。如果您的自定义集群无公网环境,无法访问 Internet。则可以遵循以下步骤:
  1. 使用能够访问公网的环境,下载相关采集器镜像。
  1. 上传至私有云仓库中。
  1. 部署采集器时,增加私有仓库的字段,允许从私有仓库拉取采集器镜像。
./install.sh \
--agent vmagent \ # 采集器类型
--region cn-beijing \ # VMP 工作区所在地域
--namespace volcano-metrics \ # 部署采集器等组件的命名空间
--remote-write-url http://vmp-test.com/workspaces/b762e1a3-37***/api/v1/write \ # VMP 工作区的 Remote Write 地址。其中,域名需要修改为自定义的域名
--basic-auth-username username-demo \ # VMP 工作区 Basic Auth 认证模式下的认证用户名
--basic-auth-password password-demo \ # VMP 工作区 Basic Auth 认证模式下的认证密码
--private-registry xxx \ # 私有仓库地址(带命名空间)
--private-registry-username xxx \ # 私有仓库的登录用户名
--private-registry-password yyy # 私有仓库的登录密码
最近更新时间:2026.07.07 17:12:09
这个页面对您有帮助吗?
有用
有用
无用
无用