Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Apache Kafka adalah platform streaming peristiwa terdistribusi sumber terbuka yang digunakan oleh alur data berkinerja tinggi, analitik streaming, integrasi data, dan aplikasi misi-penting.
Artikel ini menjelaskan cara mengonfigurasi layanan terkelola Azure Monitor untuk fitur Prometheus dengan Azure Kubernetes Service (AKS) dan Kubernetes dengan dukungan Azure Arc untuk memantau kluster Kafka dengan mengikis metrik Prometheus.
Prasyarat
- Kluster Kafka yang berjalan pada Kubernetes dengan dukungan AKS atau Azure Arc - Menyebarkan kluster Kafka yang berjalan di AKS
- Azure Managed prometheus diaktifkan pada kluster - Aktifkan Azure Managed Prometheus di AKS
Menginstal Pengekspor Kafka
Instal Prometheus Kafka Exporter dengan menggunakan bagan Helm:
helm install azmon-kafka-exporter --namespace=azmon-kafka-exporter --create-namespace --version 2.10.0 prometheus-community/prometheus-kafka-exporter --set kafkaServer="{kafka-server.namespace.svc:9092,.....}" --set prometheus.serviceMonitor.enabled=true --set prometheus.serviceMonitor.apiVersion=azmonitoring.coreos.com/v1
Anda dapat mengonfigurasi bagan Kafka Exporter Helm dengan nilai. Tentukan alamat server yang tepat tempat server Kafka dapat dijangkau. Atur alamat server dengan menggunakan argumen kafkaServer.
Catatan
Konfigurasi layanan/pod monitor Prometheus yang terkelola dengan instalasi menggunakan bagan Helm hanya didukung pada versi bagan Helm 2.10.0 atau yang lebih baru. Jika Anda ingin mengonfigurasi layanan atau pemantau pod lainnya, ikuti instruksi ini.
Mengimpor dasbor Grafana
Untuk mengimpor dasbor Grafana (ID 7589) di Kafka Exporter dengan menggunakan ID atau JSON, ikuti instruksi di Mengimpor dasbor dari Grafana Labs.
Terapkan aturan
Unduh file template dan file parameter untuk aturan peringatan.
Edit nilai-nilai berikut dalam file parameter.
Pengaturan Nilai azureMonitorWorkspaceID sumber daya untuk ruang kerja Azure Monitor. Dapatkan dari tampilan JSON di halaman Ikhtisar untuk ruang kerja Azure Monitor. locationLokasi ruang kerja Azure Monitor. Dapatkan dari tampilan JSON di halaman Ikhtisar untuk ruang kerja Azure Monitor. clusterNameNama kluster Kubernetes dengan dukungan AKS atau Azure Arc. Ambil dari tampilan JSON di halaman Ikhtisar untuk klaster tersebut. actionGroupIdID sumber daya untuk grup tindakan pemberitahuan. Ambil dari tampilan JSON pada halaman Ikhtisar untuk grup aksi. Pelajari lebih lanjut tentang grup tindakan. Sebarkan templat dengan menggunakan metode standar apa pun untuk menginstal templat Azure Resource Manager. Untuk panduan, lihat Resource Manager template samples for Azure Monitor.
Setelah Anda menerapkan templat, Anda dapat melihat aturan di portal Azure, seperti yang dijelaskan dalam View Prometheus rule groups. Tinjau batas ambang peringatan untuk memastikan bahwa batas tersebut sesuai dengan cluster dan beban kerja Anda. Perbarui ambang batas sesuai kebutuhan.
Catatan
Aturan-aturan tersebut tidak dipetakan ke dalam sebuah klaster. Jika Anda ingin menerapkan aturan ke klaster tertentu, lihat Membatasi aturan ke klaster tertentu.
Anda dapat mempelajari lebih lanjut tentang peringatan Prometheus. Jika Anda ingin menggunakan aturan alerting/recording Prometheus open-source lainnya, gunakan az-prom-rules-converter untuk membuat aturan Prometheus setara Azure.
Dapatkan lebih banyak metrik JMX Exporter dengan menggunakan Strimzi
Jika Anda menggunakan operator Strimzi untuk menyebarkan kluster Kafka, sebarkan monitor pod untuk mendapatkan lebih banyak metrik JMX Exporter .
Metrik perlu diekspos oleh penyebaran kluster Kafka, seperti contoh di GitHub. Lihat file kafka-.*-metrics.yaml untuk mengonfigurasi metrik yang akan diekspos.
Pemantauan pod di sini juga mengasumsikan bahwa namespace di mana beban kerja Kafka dijalankan adalah kafka. Perbarui jika beban kerja disebarkan di namespace lain.
apiVersion: azmonitoring.coreos.com/v1
kind: PodMonitor
metadata:
name: azmon-cluster-operator-metrics
labels:
app: strimzi
spec:
selector:
matchLabels:
strimzi.io/kind: cluster-operator
namespaceSelector:
matchNames:
- kafka
podMetricsEndpoints:
- path: /metrics
port: http
---
apiVersion: azmonitoring.coreos.com/v1
kind: PodMonitor
metadata:
name: azmon-entity-operator-metrics
labels:
app: strimzi
spec:
selector:
matchLabels:
app.kubernetes.io/name: entity-operator
namespaceSelector:
matchNames:
- kafka
podMetricsEndpoints:
- path: /metrics
port: healthcheck
---
apiVersion: azmonitoring.coreos.com/v1
kind: PodMonitor
metadata:
name: azmon-bridge-metrics
labels:
app: strimzi
spec:
selector:
matchLabels:
strimzi.io/kind: KafkaBridge
namespaceSelector:
matchNames:
- kafka
podMetricsEndpoints:
- path: /metrics
port: rest-api
---
apiVersion: azmonitoring.coreos.com/v1
kind: PodMonitor
metadata:
name: azmon-kafka-resources-metrics
labels:
app: strimzi
spec:
selector:
matchExpressions:
- key: "strimzi.io/kind"
operator: In
values: ["Kafka", "KafkaConnect", "KafkaMirrorMaker", "KafkaMirrorMaker2"]
namespaceSelector:
matchNames:
- kafka
podMetricsEndpoints:
- path: /metrics
port: tcp-prometheus
relabelings:
- separator: ;
regex: __meta_kubernetes_pod_label_(strimzi_io_.+)
replacement: $1
action: labelmap
- sourceLabels: [__meta_kubernetes_namespace]
separator: ;
regex: (.*)
targetLabel: namespace
replacement: $1
action: replace
- sourceLabels: [__meta_kubernetes_pod_name]
separator: ;
regex: (.*)
targetLabel: kubernetes_pod_name
replacement: $1
action: replace
- sourceLabels: [__meta_kubernetes_pod_node_name]
separator: ;
regex: (.*)
targetLabel: node_name
replacement: $1
action: replace
- sourceLabels: [__meta_kubernetes_pod_host_ip]
separator: ;
regex: (.*)
targetLabel: node_ip
replacement: $1
action: replace
Mengonfigurasi pemberitahuan dengan menggunakan Strimzi
Anda dapat mengonfigurasi serangkaian pemberitahuan yang kaya berdasarkan metrik Strimzi dengan merujuk pada contoh-contoh ini.
Catatan
Jika Anda menggunakan cara lain untuk mengekspos JMX Exporter pada kluster Kafka Anda, ikuti petunjuk untuk mengonfigurasi pod atau monitor layanan yang sesuai.
Lihat dasbor Grafana untuk metrik JMX lainnya dengan menggunakan Strimzi
Untuk menampilkan dasbor untuk metrik yang diekspos oleh operator Strimzi, lihat lokasi GitHub dasbor Grafana untuk Strimzi.
Pemecahan Masalah
Ketika monitor layanan atau monitor pod berhasil diterapkan, jika Anda ingin memastikan bahwa add-on mendeteksi target monitor layanan, ikuti instruksi ini.