更新时间:2025-08-04 GMT+08:00
分享

Kafka Exporter接入AOM实现指标监控

应用场景

使用Kafka过程中需要对Kafka运行状态进行监控,例如集群状态、消息消费情况是否有积压等。Prometheus监控服务提供了CCE容器场景下基于Exporter的方式来监控Kafka运行状态。本文介绍如何部署Kafka Exporter以及实现Kafka Exporter告警接入等操作。

约束与限制

为了方便安装管理Exporter,推荐使用云容器引擎CCE进行统一管理。

前提条件

在CCE集群部署Kafka Exporter

  1. 登录CCE控制台。
  2. 单击已接入的集群名称,进入该集群的管理页面。
  3. 执行以下操作完成Exporter部署。

    1. 部署Kafka Exporter。

      在左侧导航栏中选择“工作负载”,在右上角单击“创建负载”,选择“负载类型”为无状态工作负载Deployment,选择需要的命名空间部署Kafka Exporter。

      如果以YAML的方式部署Exporter,更多Exporter详细参数介绍请参见kafka-exporter,YAML配置示例如下:

      apiVersion: apps/v1
      kind: Deployment
      metadata:
        labels:
          k8s-app: kafka-exporter # 根据业务需要调整成对应的名称,建议加上Kafka实例的信息, 如 ckafka-2vrgx9fd-kafka-exporter
        name: kafka-exporter # 根据业务需要调整成对应的名称,建议加上Kafka实例的信息, 如 ckafka-2vrgx9fd-kafka-exporter
        namespace: default # 已存在集群的namespace
      spec:
        replicas: 1
        selector:
          matchLabels:
            k8s-app: kafka-exporter # 根据业务需要调整成对应的名称,建议加上Kafka实例的信息, 如 ckafka-2vrgx9fd-kafka-exporter
        template:
          metadata:
            labels:
              k8s-app: kafka-exporter # 根据业务需要调整成对应的名称,建议加上Kafka实例的信息, 如 ckafka-2vrgx9fd-kafka-exporter
          spec:
            containers:
            - args:
              - --kafka.server=120.46.215.4:30092 # 对应Kafka实例的地址信息
              image: swr.cn-north-4.myhuaweicloud.com/mall-swarm-demo/kafka-exporter:latest
              imagePullPolicy: IfNotPresent
              name: kafka-exporter
              ports:
              - containerPort: 9308
                name: metric-port # 这个名称在配置抓取任务的时候需要
              securityContext:
                privileged: false
              terminationMessagePath: /dev/termination-log
              terminationMessagePolicy: File
            dnsPolicy: ClusterFirst
            imagePullSecrets:
            - name: default-secret
            restartPolicy: Always
            schedulerName: default-scheduler
            securityContext: {}
            terminationGracePeriodSeconds: 30
      ---
      apiVersion: v1
      kind: Service
      metadata:
        name: kafka-exporter
      spec:
        type: NodePort
        selector:
          k8s-app: kafka-exporter
        ports:
          - protocol: TCP
            nodePort: 30091
            port: 9308
            targetPort: 9308
    2. 验证Kafka Exporter是否部署成功。
      1. 在工作负载列表中“无状态负载”页签下,单击3.a创建的无状态工作负载,在实例列表中单击操作列下的“更多 > 日志”,可以查看到Exporter成功启动并暴露对应的访问地址。
        图1 查看日志
      1. 输入命令验证Kafka Exporter是否部署成功,有指标数据返回则表示Kafka Exporter已部署成功。有以下三种方法进行验证:
        • 登录集群节点执行如下任意一种命令:
          curl http://{集群IP}:9308/metrics
          curl http://{集群任意节点私有IP}:30091/metrics 
        • 在实例列表中单击操作列下的“更多 > 远程登录”,执行如下命令:
          curl http://localhost:9308/metric
        • 访问:http://{集群任意节点的公网IP}:30091/metrics。
          图2 访问地址

配置CCE集群指标采集规则

通过“新增PodMonitor”方式为应用配置可观测监控Prometheus版的采集规则,监控部署在CCE集群内的应用的业务数据。

  1. 登录AOM 2.0控制台
  2. 在左侧菜单栏中选择“Prometheus监控 > 实例列表”。
  3. 在Prometheus实例列表中,单击CCE类型的Prometheus实例名称,进入该实例的详情界面。
  4. 在左侧导航栏单击“指标管理”,在“配置”页签下单击“PodMonitor”。
  5. 单击“新增PodMonitor”,在弹出的对话框中输入PodMonitor的相关参数信息,然后单击“确定”。

    采集规则YAML配置样例如下,样例的指标采集的周期是30秒,所以等待大概30秒后才能在AOM的界面上查看到上报的指标:

    apiVersion: monitoring.coreos.com/v1
    kind: PodMonitor
    metadata:
      name: kafka-exporter
      namespace: default 
    spec:
      namespaceSelector: # 选择要监控 Exporter Pod 所在的namespace
        matchNames:
          - default # exporter 所在的命名空间
      podMetricsEndpoints:
      - interval: 30s # 设置指标采集周期
        path: /metrics # 填写Prometheus Exporter对应的Path的值,默认/metrics
        port: metric-port # 填写 Prometheus Exporter 对应的 YAML 的 ports的name
      selector: # 填写要监控Exporter Pod的Label标签,以定位目标Exporter
        matchLabels:
          k8s-app: kafka-exporter

验证CCE集群指标上报到AOM

  1. 登录AOM 2.0控制台
  2. 在左侧菜单栏中选择“Prometheus监控 > 实例列表”。
  3. 单击接入了该CCE集群的“prometheus for CCE”实例名称,进入实例详情页面。
  4. 在“指标管理”页面的“指标”页签下,选择对应集群。
  5. 选择Job:{namespace}/kafka-exporter,可以查询到kafka开头的自定义指标。

在AOM上配置仪表盘和告警

通过仪表盘功能可视化监控CCE集群数据,通过告警规则功能,在集群发生故障时能够及时发现并预警。

  • 配置仪表盘图表
    1. 登录AOM 2.0控制台
    2. 在左侧菜单栏中选择“仪表盘 > 仪表盘”,单击“创建仪表盘”新建一个仪表盘,详情可参见创建仪表盘
    3. 在仪表盘页面选择实例类型为“Prometheus for CCE”的实例并单击“添加图表”,详情请参见添加图表至仪表盘
  • 配置告警
    1. 登录AOM 2.0控制台
    2. 在左侧菜单栏中选择“告警中心 > 告警规则”。
    3. 在“Prometheus监控”页签下单击“创建告警规则”配置告警,详情请参见创建指标告警规则

相关文档