在 Debian 上監控 Kafka 集群可以通過多種工具和方法實現,以下是一些有效的監控技巧和工具:
kafka_exporter
進行監控kafka_exporter
是一個開源項目,能夠收集 Kafka 集群的監控指標,并通過 Prometheus 進行展示。以下是使用 kafka_exporter
的基本步驟:
安裝 kafka_exporter
:
你可以通過 Docker Compose 來部署多個 kafka_exporter
實例,每個實例監控一個 Kafka broker。
version: '3.1'
services:
kafka-exporter-opslogs:
image: bitnami/kafka-exporter:latest
command: '--kafka.server=10.2.19.43:9092 --kafka.server=10.2.24.62:9092 --kafka.server=10.5.98.190:9092 --kafka.version=3.2.1'
restart: always
ports:
- 9310:9308
kafka-exporter-prod:
image: bitnami/kafka-exporter:latest
command: '--kafka.server=192.168.53.99:9092 --kafka.server=192.168.53.53:9092 --kafka.server=192.168.53.96:9092'
restart: always
ports:
- 9311:9308
配置 Prometheus 接入 kafka_exporter
:
在 Prometheus 的配置文件中添加 kafka_exporter
的 job,確保每個 kafka_exporter
實例都有唯一的 name
標簽。
job_name: 'kafka-exporter'
metrics_path: /metrics
scrape_interval: 15s
scrape_timeout: 10s
static_configs:
- targets:
- 10.0.0.26:9310
labels:
name: kafka-opslogs
- 10.0.0.26:9311
labels:
name: kafka-prod
Grafana 是一個強大的可視化工具,可以與 Prometheus 結合使用,展示 Kafka 監控數據。你可以通過以下步驟來配置 Grafana:
安裝 Grafana: 在 Debian 上安裝 Grafana。
sudo apt-get update
sudo apt-get install grafana
導入 Kafka 監控面板: 導入基于 Prometheus 的 Kafka 監控面板(例如 starsliao/Prometheus 項目中的看板)。
Manage
-> Install
。Prometheus
插件。kafka
看板(ID:21078)。JConsole 是一個基于 JMX 的可視化監控工具,可以用來監控 Kafka 的各項指標。
啟用 JMX:
修改 kafka-server-start.sh
腳本,增加 JMX 端口配置。
export JMX_PORT="9999"
啟動 JConsole: 在終端中輸入以下命令啟動 JConsole。
jconsole
通過 JConsole 連接到 Kafka broker 的 JMX 端口,進行監控。
Kafka Manager 是一個功能全面的 Kafka 監控工具,可以用來管理和監控 Kafka 集群。
安裝 Kafka Manager: 從 Kafka Manager 的 GitHub 倉庫 下載并解壓。
配置 Kafka Manager: 修改 Kafka 集群啟動腳本,增加 JMX 相關參數。
# 修改 Kafka-run-class.sh 文件,增加 JMX Server 配置
-Djava.rmi.server.hostname=LAPTOP-3B77RHGG3
啟動 Kafka Manager: 按照項目文檔中的步驟啟動 Kafka Manager,并進行配置。
為了及時發現和處理問題,可以配置 Prometheus 告警規則。例如:
Kafka Brokers 異常:
alert: KAFKA_brokers_exception
expr: kafka_broker_info != 1
for: 2m
labels:
severity: critical
annotations:
description: "{{ $labels.name }} 當前 brokers 異常:{{ $labels.address }}"
Kafka 消息積壓:
alert: kafka_message_backpressure
expr: sum(kafka_consumergroup_lag_sum{job="kafka-exporter"}) by (name, consumergroup, topic) > 5000
for: 2m
labels:
severity: critical
annotations:
description: "【環境】{{ $labels.name }}
【消費組】{{ $labels.consumergroup }} 【topic】{{ $labels.topic }} 【積壓】:{{ $value | printf "%.2f" }}"
通過以上方法和工具,你可以在 Debian 上有效地監控 Kafka 集群,確保其穩定運行。