接入 Prometheus 监控

最近更新时间:2025-08-15 15:03:02

我的收藏

操作场景

如您需要将 CKafka 监控指标自有运维平台进行集成和对接,CKafka 提供两种接入 Prometheus 监控的方式:
1. 腾讯云可观测平台集成方式
通过腾讯云可观测平台提供的 Prometheus + Grafana 配置云产品监控,支持将云监控采集的指标通过 Prometheus 的方式接出,详情参见云监控
2. 基于开源标准 Prometheus Exporter 接入
针对专业版用户,消息队列 CKafka 提供了基于开源标准 Prometheus Exporter 的接入方式,具体说明如下:
实例级指标:专业版实例默认为所有用户提供了外部监控服务的接入方式,通过提供的接入点可完成 CKafka 实例的监控,包括但不限于 未同步副本、Topic 读写速率、请求响应耗时 等一系列开源 Kafka 可监控的度量指标。
节点级指标:专业版实例提供 Prometheus Exporter 抓取的节点指标信息,包括但不限于 CPU、内存使用情况、系统负载等基本监控度量指标,以及 broker JMX 暴露出的度量指标,相关指标均可通过 Prometheus 数据采集后进行聚合、展示及分析。
本文介绍消息队列 CKafka 版基于开源标准 Prometheus Exporter 接入 Prometheus 监控的操作步骤。

操作步骤

步骤1:获取 Prometheus 监控目标

1. 登录 CKafka 控制台
2. 在左侧导航栏选择实例列表,单击目标实例的“ID”,进入实例基本信息页面。
3. 使用 Prometheus 监控模块单击右上角的获取监控目标,选择 VPC 和子网。
4. 单击提交,获取一组监控目标。

5. 在用 Prometheus 监控实例单击右上角的重新获取,将删除已有网络下的监控地址。

6. 单击确认,可重新获取监控目标。

注意:
如实例执行了迁移变配或更换可用区的操作,则会导致因底层 broker 发生迁移获取不到 Prometheus 监控数据,此时需要通过控制台点击重新获取,来获取最新的 Exporter ip 及 port。

步骤2:用 Prometheus 采集监控数据

自建 Prometheus
云监控 Prometheus
1. 下载 Prometheus,并配置监控抓取地址。
2. 进入 Prometheus 程序包所在目录,执行如下命令,解压 Prometheus 程序包。
tar -vxf prometheus-2.30.3.linux-amd64.tar.gz
3. 修改配置文件 prometheus.yml,增加 jmx_exporternode_exporter 抓取任务。
scrape_configs:
# The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
- job_name: "prometheus"
# metrics_path defaults to '/metrics'
# scheme defaults to 'http'.
static_configs:
- targets: ["localhost:9090"]

- job_name: "broker-jmx-exporter"
scrape_interval: 5s
metrics_path: '/metrics'
static_configs:
- targets: ['10.x.x.0:60001','10.x.x.0:60003','10.x.x.0:60005']
labels:
application: 'broker-jmx'
- job_name: "broker-node-exporter"
scrape_interval: 10s
metrics_path: '/metrics'
static_configs:
- targets: ['10.x.x.0:60002','10.x.x.0:60004','10.x.x.0:60006']
labels:
application: 'broker-node'
broker-jmx-exporter 是 Prometheus 抓取 Broker 的 JMX 指标配置的标签项,Targets 其中包含映射的端口信息,
broker-node-exporter 为抓取 Broker 所在节点的基本指标配置的标签项, scrape_interval 为抓取监控度量数据的频率。
4. 启动 Prometheus。
./prometheus --config.file=prometheus.yml --web.enable-lifecycle
5. 打开 Prometheus 提供的 UI 界面查看接入的 Targets 状态是否正常,如在浏览器输入 http://localhost:9090

6. 检查 Targets 状态都是 UP

如果 Targets 状态为 DOWN 则需要检查网络访问是否可达,或根据状态栏最后的 Error 选项查看原因。
7. 查询监控指标数据。
单击 Graph 选项输入查询的指标名称即可看到相应的监控数据,例如输入node_memory_MemAvailable_bytes ,单击 Execute

1. 登录可观测平台 > Prometheus 监控,如果没有 Prometheus 实例,请先单击新建去创建实例,具体指引请见 创建 Prometheus 实例
注意:
在创建 Prometheus 实例时,绑定的 VPC 和子网需要与步骤1 中 vpcId 和 subnetId 保持一致,否则会出现网络不通的问题。

2. 在实例列表中点击一个 Prometheus 实例,进入实例详情。选择数据采集 > 集成中心,在开发中找到抓取任务,点击进入。


3. 在弹出的抓取任务抽屉中,填写以下代码示例中的采集配置,并点击保存
根据需要采集的指标大类进行配置,支持 jmx-exporter 及 node-exporter。

jmx-exporter 配置示例:
job_name: broker-jmx-exporter
scrape_interval: 10s
metrics_path: /metrics
static_configs:
- targets:
- 10.0.x.x:60001
- 10.0.x.x:60003
- 10.0.x.x:60005
- 10.0.x.x:60007
labels:
application: broker-jmx
node-exporter 配置示例:
job_name: broker-node-exporter
scrape_interval: 10s
metrics_path: /metrics
static_configs:
- targets:
- 10.0.x.x:60002
- 10.0.x.x:60004
- 10.0.x.x:60006
- 10.0.x.x:60008
labels:
application: broker-node
4. 在抓取任务中点击已集成页签,等待2-3分钟,可以看到运行状态变化为“已部署”,Targets 也可以看到具体的数据抓取对象。点击指标明细可以看到抓取的 Broker 指标。