Kafka:Prometheus + Grafana 监控
1. Kafka Exporter 安装与配置
1.1 下载 Kafka Exporter
1 | wget https://github.com/danielqsj/kafka_exporter/releases/download/v1.3.1/kafka_exporter-1.3.1.linux-amd64.tar.gz |
1.2 启动 Kafka Exporter
1 | # 单节点模式 |
1.3 常用启动参数
| 参数 | 说明 | 示例 |
|---|---|---|
| --kafka.server | Kafka broker地址 | --kafka.server=host:port |
| --web.listen-address | 监听地址和端口 | --web.listen-address=”:9308” |
| --log.level | 日志级别 | --log.level=debug |
| --topic.filter | 主题过滤正则 | --topic.filter=”.*“ |
2. Prometheus 配置
2.1 修改 prometheus.yml
1 | scrape_configs: |
2.2 重新加载配置
1 | # 发送SIGHUP信号给Prometheus进程 |
3. Grafana 仪表板配置
3.1 导入Kafka监控仪表板
- 访问Grafana控制台
- 导航到 Create > Import
- 输入仪表板ID
7589(官方Kafka仪表板) - 选择对应的Prometheus数据源
3.2 关键监控指标
集群级别指标
| 指标名称 | 说明 |
|---|---|
| kafka_brokers | 存活的broker数量 |
| kafka_topic_partitions | 每个topic的分区数 |
| kafka_consumergroup_lag | 消费者组延迟 |
Broker级别指标
| 指标名称 | 说明 |
|---|---|
| kafka_broker_info | broker基本信息 |
| kafka_broker_leader_count | broker作为leader的分区数 |
Topic级别指标
| 指标名称 | 说明 |
|---|---|
| kafka_topic_partition_count | topic分区数 |
| kafka_topic_partition_offset | topic分区offset |
| kafka_topic_partition_current_offset | 当前offset |
4. 系统服务配置(可选)
4.1 创建systemd服务
1 | cat > /etc/systemd/system/kafka_exporter.service <<EOF |
4.2 管理服务
1 | systemctl daemon-reload |
5. 告警规则配置
5.1 Prometheus告警规则示例
1 | groups: |
6. 高级配置
6.1 监控多个Kafka集群
1 | scrape_configs: |
6.2 使用服务发现
1 | scrape_configs: |
7. 常见问题排查
无法连接Kafka集群
- 检查Kafka broker地址是否正确
- 验证网络连通性
- 检查Kafka ACL配置
Prometheus无法抓取指标
- 检查kafka_exporter是否运行
- 验证防火墙设置
- 检查Prometheus配置语法
Grafana无数据显示
- 确认数据源配置正确
- 检查时间范围设置
- 验证指标名称是否正确