操作场景
在使用 Kafka 过程中需要对 Kafka 运行状态进行监控,例如集群状态、消息消费情况是否有积压等, Prometheus 监控服务提供基于 Exporter 的方式来监控 Kafka 运行状态,并提供了开箱即用的 Grafana 监控大盘。本文介绍如何部署 Exporter 以及实现 Kafka Exporter 告警接入等操作。
说明:
为了方便安装管理 Exporter,推荐使用腾讯云 容器服务 进行统一管理。 前提条件
在 Prometheus 实例对应地域及私有网络 VPC 下,创建腾讯云容器服务 托管版集群,并为集群创建 命名空间。 操作步骤
Exporter 部署
2. 单击需要获取集群访问凭证的集群 ID/名称,进入该集群的管理页面。
3. 在左侧菜单中选择工作负载 > Deployment,进入 Deployment 页面。
4. 在 Deployment 管理页面,单击新建,选择对应的命名空间来进行部署服务。可以通过控制台的方式创建,如下以 YAML 的方式部署 Exporter,YAML 配置示例如下:
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
k8s-app: kafka-exporter
name: kafak-exporter
namespace: kafka-demo
spec:
replicas: 1
selector:
matchLabels:
k8s-app: kafka-exporter
template:
metadata:
labels:
k8s-app: kafka-exporter
spec:
containers:
- args:
- --kafka.server=x.x.x.x:9092
image: danielqsj/kafka-exporter:latest
imagePullPolicy: IfNotPresent
name: kafka-exporter
ports:
- containerPort: 9121
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
添加采取任务
2. 通过集成容器服务列表单击集群 ID 进入到容器服务集成管理页面。
3. 通过服务发现添加 Pod Monitor
来定义 Prometheus 抓取任务,YAML 配置示例如下:
apiVersion: monitoring.coreos.com/v1
kind: PodMonitor
metadata:
name: kafka-exporter
namespace: cm-prometheus
spec:
podMetricsEndpoints:
- interval: 30s
port: metric-port
path: /metrics
relabelings:
- action: replace
sourceLabels:
- instance
regex: (.*)
targetLabel: instance
replacement: 'ckafka-xxxxxx'
- action: replace
sourceLabels:
- instance
regex: (.*)
targetLabel: ip
replacement: '1.x.x.x'
namespaceSelector:
matchNames:
- kafka-demo
selector:
matchLabels:
k8s-app: kafka-exporter
说明:
由于 Exporter
和 Kafka
部署在不同的服务器上,因此建议通过 Prometheus Relabel 机制将 Kafka 实例的信息放到监控指标中,以便定位问题。
查看监控
2. 单击集成中心,进入集成中心页面。找到 kafka 监控,安装对应的 Grafana Dashboard 即可开启 kafaka 监控大盘,查看实例相关的监控数据,如下图所示:
告警以及接入
2. 单击告警策略,可以添加相应的告警策略,详情请参见新建告警策略。
本页内容是否解决了您的问题?