阿里云Prometheus监控提供一键安装配置自建Kafka类型的组件,并提供开箱即用的专属监控大盘。

背景信息

阿里云Prometheus监控提供了自建Kafka的监控接入能力,支持容器服务(包含ACK、ASK、注册集群等)和ECS这两个环境类型的Kafka监控,且提供基础和高级两个版本:
  • Kafka(基础版):包括收集Broker数量、Topic分区、消息组Lag等基础指标,Kafka服务端无需您进行任何配置或重启操作。接入Kafka(基础版)组件的具体操作,请参见下文接入Kafka(基础版)组件
  • Kafka(高级版):除基础版能力外,通过JMX Agent,可收集生产者、服务端、消费者及其内部各模块的重要指标,实现全链路、一体化的专家级Kafka监控,需要您手动进行JMX Agent注入和进程重启操作。接入Kafka(高级版)组件的具体操作,请参见下文接入Kafka(高级版)组件

功能入口一:集成中心

  1. 登录ARMS控制台
  2. 在左侧导航栏选择Prometheus监控 > 实例列表,进入Prometheus监控的实例列表页面。
  3. 单击目标Prometheus实例名称,进入集成中心页面。

功能入口二:接入中心

  1. 登录ARMS控制台
  2. 在左侧导航栏单击接入中心,然后在应用组件区域单击Kafka(基础版)或者Kafka(高级版)卡片的添加,然后在弹出的页面根据控制台指引完成组件接入。

接入Kafka(基础版)组件

这里以接入中心入口为例,介绍接入Kafka(基础版)组件的操作,具体步骤如下。

步骤一:接入Kafka(基础版)组件

  1. 登录ARMS控制台
  2. 在左侧导航栏单击接入中心,然后在应用组件区域单击Kafka(基础版)卡片的添加,然后在弹出的页面按照如下步骤完成接入。
    vr
    1. STEP1区域选择Kafka所部署的环境。
    2. STEP2区域选择Kafka所在的Prometheus实例。
    3. STEP3区域的配置页签配置相关参数,然后单击确定
      参数 说明
      Exporter名称 当前Kafka监控唯一命名。
      kafka地址 填写Kafka Broker的连接地址。多个Broker地址之间使用半角逗号或分号来分隔。
      • 容器服务内,则可以使用Kafka Broker的IP或Service地址。
      • ECS环境内,则可以使用Kafka Broker的IP或DNS地址。
      metrics采集间隔(秒) 监控数据采集时间间隔。
      kafka版本 选择Kafka服务端的版本号,目前最高支持v3.2.0版本。
      开启SASL 选择Kafka服务端是否使用SASL。
      SASL用户名 如果开启SASL,则需要填写对应的用户名。
      SASL密码 如果开启SASL,则需要填写对应的用户名密码。
      SASL方法 选择SASL方法,目前支持plain、scram-sha512和scram-sha256。
      开启TLS 选择Kafka服务端是否使用TLS。
      忽略TLS安全校验 如果Kafka服务端开启TLS,且是自签名证书,则选择忽略TLS安全校验。

步骤二:查看Kafka(基础版)组件状态

  1. 登录ARMS控制台
  2. 在左侧导航栏选择Prometheus监控 > 实例列表,进入Prometheus监控的实例列表页面。
  3. 单击目标Prometheus实例名称,进入集成中心页面。
  4. 单击已安装区域的Kafka(基础版)卡片,在弹出的面板中查看大盘、指标等信息。
    • Target:您可以在Targets页签查看集成默认Job发现的Targets列表。
    • 指标:您可以在指标页签查看具体的指标信息并对指标进行废弃配置。具体操作,请参见配置指标
    • 大盘:您可以在大盘页签,单击大盘缩略图,查看对应Grafana大盘。dl
      Kafka基础版监控大盘主要展示以下几点,如下图所示: vr
      • Kafka Broker数量。
      • 每个Topic的分区数。
      • 每个Topic的消息入/出/堆积数量。
      • 每个Topic的ISR(In-Sync Replicas)数量。
    • 告警:您可以在告警页签,查看Kafka(基础版)的Prometheus告警。如下图所示,可以看到目前Prometheus监控提供4个关键告警指标,您还可以根据业务需求新增告警规则。创建Prometheus告警规则的具体操作,请参见Prometheus告警规则fk
    • 服务发现配置:您可以在服务发现配置页签对默认基础监控Job进行操作,例如编辑抓取时间间隔、关闭采集Job等。
    • Exporter:您可以在Exporter页签查看默认安装的node-exporter以及对应的版本号信息。

接入Kafka(高级版)组件

这里以接入中心入口为例,介绍接入Kafka(高级版)组件的操作,具体步骤如下。

步骤一:接入Kafka(高级版)组件

  1. 登录ARMS控制台
  2. 在左侧导航栏单击接入中心,然后在应用组件区域单击Kafka(高级版)卡片的添加,然后在弹出的页面按照如下步骤完成接入。
    dk
    1. STEP1区域选择Kafka所部署的环境。
    2. STEP2区域选择Kafka所在的Prometheus实例。
    3. STEP3区域的配置页签配置相关参数,然后单击确定
      参数 说明
      exporter名称 当前Kafka监控唯一命名。
      kafka实例名称 Kafka实例名称,通过该名称可以将Kafka Producer、Broker和Consumer进行关联,实现Topic全链路的大盘展示。
      JMX Agent监听端口 部署JMX Agent时配置的监听端口。
      metrics采集路径 Prometheus监控采集JMX Agent的HTTP Path,默认是/metrics
      metrics采集间隔(秒) 监控数据采集时间间隔。
      Pod/ECS标签 部署JMX Agent时,为Pod/ECS配置的标签和标签值,Prometheus监控通过此标签进行服务发现(Service Discovery)。
      Pod/ECS标签值

步骤二:查看Kafka(高级版)组件状态

  1. 登录ARMS控制台
  2. 在左侧导航栏选择Prometheus监控 > 实例列表,进入Prometheus监控的实例列表页面。
  3. 单击目标Prometheus实例名称,进入集成中心页面。
  4. 单击已安装区域的Kafka(高级版)卡片,然后在弹出的面板中查看指标、大盘、告警等信息。
    • Target:您可以在Targets页签查看集成默认Job发现的Targets列表。
    • 指标:您可以在指标页签查看具体的指标信息并对指标进行废弃配置。具体操作,请参见配置指标
    • 大盘:您可以在大盘页签,单击大盘缩略图,查看对应Grafana大盘。高级版监控提供了Intance和Topic两个视角的大盘,具体详情如下:
      • 自建Kafka Instance大盘
        展示Kafka Broker内部各项指标:
        • 核心指标:展示Broker数量、OffLine分区数、Under Replicated分区数、Controller数量、CPU及网络等关键信息。
        • JVM指标:展示JVM的内存和GC关键信息。
        • 分区指标:展示分区数量、ISR、Unclean Leader选举、Replica Lag、Offline分区、Under Replicated分区等明细信息。
        • 时间指标:展示Produce、Request、Fetch等各个环境的时间指标。
        • 集群流量指标:展示集群的总体流量指标。
        • Broker流量指标:展示Broker粒度的流量明细指标。
        ei
      • 自建Kafka Topic大盘
        展示各个Kafka Topic全链路指标:
        • Producer:展示Producer端的关键指标,包括消息发送速度、消息压缩率、发送延迟等。
        • Server(即Kafka Broker):展示该Topic对应的分区数、入/出消息速率、入/出消息流量。
        • Consumer:展示消息消费速率、消费延迟和Rebalance等。
        eio
    • 告警:您可以在告警页签,查看Kafka(高级版)的Prometheus告警。如下图所示,可以看到目前Prometheus监控提供Producer、Instance和Consumer相关的告警指标,具体如下。
      • 自建Kafka Producer:提供了消息发送失败率、消息发送耗时、消息发送重试率等3个告警指标,方便用户对Producer端的异常进行告警。
      • 自建Kafka Instance:提供了分区数量过多、存在OffLine分区、存在UnClean Leader选举、存在Under Replicated分区、有效Broker数量减少、有效Controller数量、实例消息拒绝量、实例消息流入/出量、Topic消息流入/出量等13个告警指标,覆盖了Kafka Broker各方面异常。
      • 自建Kafka Consumer:提供了消息消费堆积告警指标,通过该告警规则,您能够及时掌握消费异常情况。
      riop

      您还可以根据业务需求新增告警规则。创建Prometheus告警规则的具体操作,请参见Prometheus告警规则

    • 服务发现配置:您可以在服务发现配置页签对默认基础监控Job进行操作,例如编辑抓取时间间隔、关闭采集Job等。
    • Exporter:您可以在Exporter页签查看默认安装的node-exporter以及对应的版本号信息。