ASK接入ARMS Prometheus监控

接入Prometheus监控后,您可以通过ARMS预定义的大盘监控Kubernetes集群的众多性能指标。本文介绍如何为ASK集群接入ARMS Prometheus监控。

前提条件

  • 已创建ASK集群。

    说明

    如果您集群内使用的安全组不是自动创建生成的,而是手动配置的安全组,请确保该安全组已开放8080、8081和9335端口。

  • 已开通ARMS服务。具体操作,请参见开通ARMS

    说明

    Prometheus监控是ARMS的付费子产品,您可以免费试用15天,试用结束后需开通专家版方可继续使用。更多信息,请参见ARMS定价页

背景信息

应用实时监控服务ARMS(Application Real-Time Monitoring Service)是一款应用性能管理(APM)产品,包含应用监控、Prometheus监控等功能模块,能帮助您实现全栈式性能监控和端到端全链路追踪诊断,实现轻松高效的应用运维。

ARMS Prometheus监控可以全面对接开源Prometheus生态,支持类型丰富的组件监控,提供多种开箱即用的预置监控大盘,并提供全面托管的Prometheus服务。借助ARMS Prometheus监控,您无需自行搭建Prometheus监控系统,因而无需关心底层数据存储、数据展示、系统运维等问题。更多信息,请参见Prometheus监控概述

安装Prometheus监控组件

  1. 登录容器服务管理控制台

  2. 在左侧导航栏,选择市场>应用目录

  3. 阿里云应用页签下,找到ack-arms-prometheus应用,然后单击该应用。

  4. 配置参数,并选择集群进行安装。

    1. 选择要安装的ASK集群。

    2. 单击参数页签,在下方模板中填写AccessKey和AccessKeySecret。

    3. 单击创建

    prometheus
  5. 查看安装结果。

    单击集群名称进入集群信息页面,在左侧导航栏选择应用>Helm,查看arms-prom的状态是否为已部署

查看Prometheus监控

安装prometheus监控组件后,您可以在ARMS控制台的Prometheus监控页面查看具体监控信息。

  1. 容器服务管理控制台的左侧导航栏,选择集群

  2. 找到要查看监控数据的集群,单击集群名称。

  3. 集群信息页面,单击右上角的Prometheus监控

  4. 查看Prometheus监控指标。

    您可以根据需要切换页签查看各项仪表板展示的监控指标。更多信息,请参见查看Prometheus监控指标Prometheus1单击右上角的跳转到应用实时监控服务 ARMS,可以跳转到ARMS控制台设置该集群的Prometheus监控大盘。Prometheus3

配置Prometheus监控采集规则

ARMS Prometheus监控兼容并提供三种主流采集规则的实现,包括:

  • 标准开源采集规则配置文件prometheus.yaml

  • 适合自定义K8s集群内监控的采集规则ServiceMonitor

  • 默认采集规则Annotation

三种规则对应的配置方式如下:

  • 编辑prometheus.yaml

    Prometheus监控无需重启,使用prometheus.yaml配置文件即可动态更新采集规则。

    1. ARMS控制台Prometheus监控页面。找到要配置的集群,单击设置

    2. 单击Prometheus设置页签。

    3. 编辑prometheus.yaml,然后单击保存

      prometheus
  • 添加ServiceMonitor

    添加ServiceMonitor后可以进行K8s集群内应用业务数据的监控。

    1. ARMS控制台Prometheus监控页面。找到要配置的集群,单击设置

    2. 单击服务发现页签,然后单击添加ServiceMonitor

    3. 参考以下示例填写内容,然后单击确定

      apiVersion: monitoring.coreos.com/v1
      kind: ServiceMonitor
      metadata:
        # 填写一个唯一名称
        name: tomcat-demo
        # 填写目标命名空间
        namespace: default
      spec:
        endpoints:
        - interval: 30s
          # 填写Prometheus Exporter对应的Port的Name字段的值
          port: tomcat-monitor
          # 填写Prometheus Exporter对应的Path的值
          path: /prometheus-metrics
        namespaceSelector:
          any: true
        selector:
          matchLabels:
            #填写service.yaml的label字段,用来定位目标service.yaml
            app: tomcat
  • 添加Annotation

    在应用的YAML文件里,添加Annotation如下:

    annotations:
              prometheus.io/scrape: "true"
              prometheus.io/port: "9090"
              prometheus.io/path: "/metrics"