You need to enable JavaScript to run this app.
导航

使用托管 Prometheus 监控云产品

最近更新时间2024.03.28 19:34:16

首次发布时间2023.09.27 10:43:53

托管 Prometheus 支持通过多种方式实现云产品的监控,满足用户对云上基础资源、云产品、自定义业务的统一监控。本文为您介绍如何使用托管 Prometheus 实现云产品监控。

如何使用托管 Prometheus 监控云产品

云监控集成

说明

该功能为云监控产品的 公测 功能,暂时免费使用。如需使用该功能,请先开通云监控产品的按量计费,然后联系您的解决方案工程师。

云监控是火山引擎云上一站式监控告警解决方案。可以帮助您收集并可视化展示火山引擎上多种类型云产品的资源状态和监控信息,包括:云服务器、集群、网关、专线连接、云存储等。详情请参见 什么是云监控

您可以通过云监控提供的数据导出 exporter,将云监控上的云产品监控数据实时导出到托管 Prometheus,与您集群中的业务监控数据进行汇聚,实现业务数据和基础资源数据的统一监控。同时,还可以借助托管 Prometheus 与 Grafana 的天然兼容性,使用 Grafana 搭建业务相关的大盘。
alt

注意

目前仅支持导出部分云产品的监控数据,详情请参见 云监控文档

云监控产品导出的数据中,指标名称由NamespaceSubNamespaceMetricName组成,其中:

  • Namespace表示云产品。各云产品的Namespace请参见 云产品监控指标
  • SubNamespace表示云产品下的指标细分分类。
  • MetricName表示指标名。

说明

例如,当您导出云服务器(ECS)指标时,NamespaceVCM_ECSSubNamespaceGPUMetricNameGpuTemperature导出的指标名为GpuTemperature_GPU_VCM_ECS

云产品自监控

部分云产品提供了自身监控的 exporter 和指标集,但这些云产品的指标及看板散落在各自的控制台。为了能将这些数据进行统一采集和展示,托管 Prometheus 支持通过部署 exporter 并接入的方式,提供更加便捷、一致的日常运维监控能力。

  • 已通过产品化,完成托管 Prometheus 接入的云产品有:容器服务(VKE)、云服务器(ECS)、微服务引擎(MSE)、API 网关(APIG)、弹性容器实例(VCI)等。这些产品的接入方式,请参见 云服务接入
  • 未产品化,但可以通过自监控 exporter 接入的云产品有:veImageX、视频点播等。

alt

云监控集成最佳实践

前提条件

  • 已注册并开通火山引擎容器服务(VKE)和云监控。
  • 已创建托管 Prometheus 工作区,详情请参见 创建工作区
  • 容器服务集群已接入托管 Prometheus,详情请参见 容器服务接入
  • 已在集群中创建 PodMonitor CRD 资源,详情请参见 创建 PodMonitor CRD 资源

使用限制

  • 安装 exporter 需要使用您账号的 AK、SK,请提前获取。详情请参见 访问密钥使用指南
  • 由于 exporter 使用云监控的 OpenAPI 获取监控数据。因此,请求 OpenAPI 会占用接口限额,超限之后获取指标会被限制。
  • 通过 exporter 导出数据依赖云监控的GetMetricData接口,该接口的单请求最多支持批量拉取 10 个实例的监控数据,单请求的数据点数限制为 1440 个。如果您需要调用的指标和对象较多,可能会因为限频导致拉取失败,建议尽量将请求按照时间维度均摊。

配置步骤

步骤一:使用 ConfigMap 配置 exporter

  1. 登录 容器服务控制台
  2. 单击左侧导航栏中的 集群
  3. 在集群列表页面,单击需要配置的目标集群。
  4. 在集群管理页面的左侧导航栏中,选择 配置管理 > 配置项,单击 使用 Yaml 创建,创建配置项。
apiVersion: v1
kind: ConfigMap
metadata:
  name: cloud-monitor-exporter-conf
  namespace: volcano-metrics
data:
  conf.yaml: |
    Region: 'cn-beijing' # 配置云监控产品的 region,例如 cn-beijing
    Credentials:
      AccessKey: 'AKLTMW***' # 填写您火山引擎账号的 AK,该账号需要拥有云服务的 CloudMonitorFullAccess 或 CloudMonitorReadOnlyAccess 权限
      SecretKey: 'TkdabU5***' # 填写您火山引擎账号的 SK
    DelaySeconds: 120 # 指标延迟,单位为 s,默认 120s,最大 300s
    DataConcurrency: 2 # 查询指标的并发度 默认为 1,最大 5
    DataQueueSize: 100 # 查询排队的队列长度,默认 0, 最大 10000
    MetaFreshIntervalSeconds: 120 # 元信息刷新间隔,单位为 s,默认刷新间隔 30s,最小 30s
    DataFreshIntervalSeconds: 30 # 指标数据刷新间隔,单位为 s,默认刷新间隔 30s,最小 30s
    MaxRetries: 2 # 请求失败重试次数,默认为 1,最大值为 3
    Limiter:
      LimitQPSGetMetricData: 5 # 查询云监控 GetMetricData 接口的 QPS 上限,最大值为 9
      LimitQPSMonitorObjectList: 5 # 查询云监控 ListMonitorObjects 接口的 QPS 上限,最大值为 9
    Namespaces: # 配置需要导出监控信息的云产品,详情请参见“背景说明”。建议按需选择,可能影响性能
      - 'VCM_ECS' # 需要导出的云产品 1
      - 'VCM_CLB' # 需要导出的云产品 2

说明

云监控数据导出 exporter 的更多配置和异常排查方案,请参见 云监控文档

步骤二:部署 exporter

  1. 在左侧菜单栏中选择 工作负载 > 无状态负载
  2. 单击 使用 Yaml 创建 ,部署 exporter。
apiVersion: apps/v1
kind: Deployment
metadata:
  name: volc-cloud-monitor-exporter # 配置 exporter 的名称
  namespace: volcano-metrics # 配置 exporter 的命名空间
spec:
  replicas: 1
  selector:
    matchLabels:
      app: volc-cloud-monitor-exporter
  template:
    metadata:
      labels:
        app: volc-cloud-monitor-exporter
    spec:
      containers:
      - name: volc-cloud-monitor-exporter
        image: cloud-monitor-cn-beijing.cr.volces.com/cm/cloud-monitor-exporter:1.0.16.1 # 配置 exporter 镜像的地址和版本
        args:
          - "--config=/conf/conf.yaml"
        resources:
          limits:
            memory: "128Mi"
            cpu: "500m"
        ports:
        - containerPort: 9988 # 配置容器端口号
          name: metric-port # 配置容器端口名称
        volumeMounts:
          - name: conf
            mountPath: /conf
      volumes:
        - name: conf
          configMap:
            name: cloud-monitor-exporter-conf # 使用 ConfigMap 指定 exporter 配置信息

步骤三:配置服务发现

注意

  • 托管 Prometheus 支持基于 ServiceMonitor、PodMonitor 和 Service/Pod annotation 实现服务发现,本文以 PodMonitor 为例。详情请参见 服务发现
  • 请勿在相同环境中同时配置多个服务发现,否则可能导致数据的重复采集。
  1. 在左侧菜单栏中选择 工作负载 > 对象浏览器
  2. 单击 使用 Yaml 创建 ,通过 PodMonitor 配置服务发现。
    • 类型 下拉菜单中选择 自定义
    • Yaml 配置框内输入 Yaml 配置。
apiVersion: monitoring.coreos.com/v1
kind: PodMonitor
metadata:
  name: volc-cloud-discover # 配置 PodMonitor 的名称
  namespace: volcano-metrics # 配置 PodMonitor 的命名空间
  labels: 
    volcengine.vmp: "true" # 配置 PodMonitor 的标签,允许被 Prometheus-agent 发现
spec:
  podMetricsEndpoints:
  - interval: 60s # 配置采集时间间隔
    port: metric-port # 填写 exporter 的容器端口名称
    path: /metrics # 填写指标暴露的 URI 路径,不填默认为 /metrics
  namespaceSelector:
    matchNames: 
    - volcano-metrics # 配置为 exporter 所在的命名空间
  selector: 
    matchLabels:
      app: volc-cloud-monitor-exporter # 配置 exporter 的 Label 值,以定位和选择目标 Pod

结果验证

  1. 登录 VMP 服务控制台
  2. 在顶部导航栏,选择目标地域。
  3. 单击左侧导航栏的 Explore,进入 Explore 页面。
  4. 在右上角的配置项中,配置需要查询指标的 工作区,并在 指标检索 文本框内,使用云监控的指标(例如CPUUser_Instance_VCM_ECS)查询,确认是否能够正确查询到对应的指标。
    alt

    说明

    • 云监控导出指标的名称格式为MetricName_SubNamespace_Namespace,例如CPUUser_Instance_VCM_ECS。不同云服务产品的指标详情,请参见 云产品监控指标
    • 您可以使用ResourceID字段,对资源进行细粒度筛选,查看具体资源的监控信息。
    • 如果您需要使用 Grafana 构建监控大盘,可以将托管 Prometheus 的数据接入自建 Grafana。详情请参见 将托管 Prometheus 数据接入自建 Grafana

相关文档

云产品自监控最佳实践

部分云产品提供了自监控 exporter,您可以在云服务器实例中部署该 exporter,并接入托管 Prometheus,实现产品指标的统一采集和展示。以 veImageX 产品为例,请参见 监控 veImageX 云服务