Prometheus 监控服务 Kafka Exporter 接入

在使用 Kafka 过程中需要对 Kafka 运行状态进行监控,例如集群状态、消息消费情况是否有积压等, Prometheus 监控服务提供基于 Exporter 的方式来监控 Kafka 运行状态,并提供了开箱即用的 Grafana 监控大盘。这里说明如何部署 Exporter 以及实现 Kafka Exporter 告警接入等操作。

相关产品
Prometheus 监控服务 产品页,含版本规格、价格与购买入口。

一、操作场景

注意:说明:

注意:如果需要监控的 Kafka 是腾讯云 消息队列 CKafka 版,推荐使用集成中心 云监控集成,支持一键采集云产品指标。

二、前提条件

·Prometheus 实例所在私有网络 VPC 与 Kafka 网络相通。

·需在 Kafka 放通 Prometheus IPv4 地址的读权限,详细步骤可参见 配置 ACL 策略。

三、操作步骤

1. 登录 Prometheus 监控服务控制台。

2. 在实例列表中,选择对应的 Prometheus 实例。

3. 进入实例详情页,选择数据采集 > 集成中心。

4. 在集成中心找到并单击 Kafka,即会弹出一个安装窗口,在安装页面填写指标采集名称和地址等信息,并单击保存即可。

四、配置说明

参数 说明
名称 集成名称,命名规范如下:名称具有唯一性。名称需要符合下面的正则:'^a-z0-9?(\\.a-z0-9?)*$'。
地址 填写 Kafka Broker 的连接地址。
Kafka 版本 选填,部分特定版本必填,例如 0.10.2.0。
标签 给指标添加自定义 Label。
抓取间隔 数据抓取间隔,填写示例:60s、1m30s、5m、1h30m。
抓取超时 抓取超时必须小于等于抓取间隔。填写方式同抓取间隔。
topic 过滤正则 选填,不填默认采集全部的 topic。填写后只会采集符合正则的 topic。
group 过滤正则 选填,不填默认采集全部的 group。填写后只会采集符合正则的 group。

五、方式二:自定义安装

注意:说明:

注意:为了方便安装管理 Exporter,推荐使用腾讯云 容器服务 进行统一管理。

六、前提条件

·在 Prometheus 实例对应地域及私有网络 VPC 下,创建 腾讯云容器服务,并为集群创建 命名空间。

·在 Prometheus 监控服务控制台,选择对应的 Prometheus 实例 > 数据采集 > 集成容器服务中找到对应容器集群完成关联集群操作。详情可参见 关联集群。

·需在 Kafka 放通 Prometheus IPv4 地址的读权限,同上文 一键安装 的前提条件。

七、操作步骤

步骤一:Exporter 部署

1. 登录 容器服务控制台。

2. 在左侧菜单栏中单击集群。

3. 单击需要获取集群访问凭证的集群 ID/名称,进入该集群的管理页面。

4. 在左侧菜单中选择工作负载 > Deployment,进入 Deployment 页面。

5. 在 Deployment 管理页面,单击新建,选择对应的命名空间来进行部署服务。可以通过控制台的方式创建,如下以 YAML 的方式部署 Exporter,YAML 配置示例如下:

apiVersion: apps/v1kind: Deploymentmetadata: labels: k8s-app: kafka-exporter # 根据业务需要调整成对应的名称,建议加上 Kafka 实例的信息, 如 ckafka-2vrgx9fd-kafka-exporter name: kafka-exporter # 根据业务需要调整成对应的名称,建议加上 Kafka 实例的信息, 如 ckafka-2vrgx9fd-kafka-exporter namespace: kafka-demo # 集群的 namespace,exporter 会部署在该 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=x.x.x.x:9092 # 对应 Kafka 实例的地址信息 image: ccr.ccs.tencentyun.com/rig-agent/kafka-exporter:v1.3.0 imagePullPolicy: IfNotPresent name: kafka-exporter ports: – containerPort: 9308 name: metric-port # 这个名称在配置抓取任务的时候需要 securityContext: privileged: false terminationMessagePath: /dev/termination-log terminationMessagePolicy: File dnsPolicy: ClusterFirst imagePullSecrets: – name: qcloudregistrykey restartPolicy: Always schedulerName: default-scheduler securityContext: {} terminationGracePeriodSeconds: 30

注意:说明:

注意:Exporter 详细参数请参见 kafka_exporter。

步骤二:添加采集任务

1. 登录 Prometheus 监控服务控制台,选择对应 Prometheus 实例进入管理页面。

2. 进入集成容器服务,选择已经关联的集群,通过数据采集配置 > 新建自定义监控 > yaml 编辑,来添加采集配置。

监控类型选择 PodMonitors,YAML 配置示例如下:

apiVersion: monitoring.coreos.com/v1 kind: PodMonitor metadata: name: kafka-exporter # 填写一个唯一名称 namespace: cm-prometheus # 按量实例: 集群的 namespace; 包年包月实例(已停止售卖): namespace 固定,不要修改 spec: podMetricsEndpoints: – interval: 30s # 采集间隔 port: metric-port # 填写步骤一 yaml 中的 spec.template.spec.containers[0].ports[0].name path: /metrics # Exporter 的指标采集路径,默认填 /metrics relabelings: – action: replace sourceLabels: – instance regex: (.*) targetLabel: instance replacement: 'ckafka-xxxxxx' # 调整成对应的 Kafka 实例 ID – action: replace sourceLabels: – instance regex: (.*) targetLabel: ip replacement: '1.x.x.x' # 调整成对应的 Kafka 实例 IP namespaceSelector: matchNames: – kafka-demo # 填写 Exporter 所在的 namespace selector: # 填写要监控 pod 的 Label 值,以定位目标 pod matchLabels: k8s-app: kafka-exporter

注意:说明:

注意:由于 Exporter 和 Kafka 部署在不同的服务器上,因此建议通过 Prometheus Relabel 机制将 Kafka 实例的信息放到监控指标中,以便定位问题。

八、前提条件

Prometheus 实例已绑定 Grafana 实例。

九、操作步骤

1. 登录 Prometheus 监控服务控制台,选择对应 Prometheus 实例进入管理页面。

2. 选择数据采集 > 集成中心,在集成中心页面找到 Kafka 监控,选择 Dashboard 操作 > Dashboard 安装/升级来安装对应的 Grafana Dashboard。

3. 选择查看已集成,在已集成列表中单击 Grafana 图标即可自动打开 Kafka 监控大盘,查看实例相关的监控数据:

十、配置告警

1. 登录 Prometheus 监控服务控制台,选择对应 Prometheus 实例进入管理页面。

2. 在告警管理 > 告警配置 > 告警策略页面,可以添加相应的告警策略,详情请参见 新建告警策略。

赞 (0)
上一篇 4天前
下一篇 4天前