Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Apache Kafka ist eine Open Source-, verteilte Event-Streaming-Plattform, die von leistungsstarken Datenpipelinen, Streaminganalysen, Datenintegration und unternehmenskritischen Anwendungen verwendet wird.
In diesem Artikel wird beschrieben, wie Sie den verwalteten Azure Monitor-Dienst für Prometheus mit Azure Kubernetes Service (AKS) und Azure Arc-fähigen Kubernetes konfigurieren, um Kafka-Cluster zu überwachen, indem Prometheus-Metriken verschrottet werden.
Voraussetzungen
- Kafka-Cluster, der auf AKS oder Azure Arc-aktivierten Kubernetes läuft – Kafka-Cluster auf AKS bereitstellen
- Azure Managed Prometheus auf dem Cluster aktiviert – Enable Azure Managed Prometheus on AKS
Installieren des Kafka-Exporters
Installieren Sie den Prometheus Kafka Exporter mithilfe des Helm-Diagramms:
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
Sie können das Kafka Exporter Helm-Diagramm mit Werten konfigurieren. Geben Sie die richtigen Serveradressen an, an denen die Kafka-Server erreicht werden können. Legen Sie die Serveradressen mithilfe des Arguments kafkaServer
fest.
Hinweis
Eine verwaltete Prometheus-Dienst-/Pod-Monitorkonfiguration mit Helm-Diagramminstallation wird nur mit der Helm-Diagrammversion 2.10.0 oder höher unterstützt. Wenn Sie andere Dienst- oder Podmonitore konfigurieren möchten, befolgen Sie diese Anweisungen.
Importieren des Grafana-Dashboards
Um das Grafana-Dashboard (ID 7589) in den Kafka Exporter mithilfe der ID oder JSON zu importieren, befolgen Sie die Anweisungen unter Importieren eines Dashboards aus Grafana Labs.
Bereitstellen von Regeln
Laden Sie die Vorlagendatei und die Parameterdatei für Warnungsregeln herunter.
Bearbeiten Sie die folgenden Werte in der Parameterdatei.
Parameter Wert azureMonitorWorkspace
Ressourcen-ID für den Azure Monitor-Arbeitsbereich. Rufen Sie sie aus der JSON-Ansicht auf der Übersichtsseite für den Azure Monitor-Arbeitsbereich ab. location
Standort des Azure Monitor-Arbeitsbereichs. Rufen Sie sie aus der JSON-Ansicht auf der Übersichtsseite für den Azure Monitor-Arbeitsbereich ab. clusterName
Name des AKS- oder Azure Arc-fähigen Kubernetes-Clusters. Rufen Sie sie aus der JSON-Ansicht auf der Seite "Übersicht" für den Cluster ab. actionGroupId
Ressourcen-ID für die Warnungsaktionsgruppe. Rufen Sie sie aus der JSON-Ansicht auf der Seite "Übersicht" für die Aktionsgruppe ab. Erfahren Sie mehr über Aktionsgruppen. Stellen Sie die Vorlage mithilfe einer beliebigen Standardmethode zum Installieren von Azure Resource Manager-Vorlagen bereit. Anleitungen finden Sie unter Ressourcen-Manager-Vorlagenbeispiele für Azure Monitor.
Nachdem Sie die Vorlage bereitgestellt haben, können Sie die Regeln im Azure-Portal anzeigen, wie in "Prometheus-Regelgruppen anzeigen" beschrieben. Überprüfen Sie die Warnungsschwellenwerte, um sicherzustellen, dass sie Ihrem Cluster und Ihren Workloads entsprechen. Aktualisieren Sie die Schwellenwerte entsprechend.
Hinweis
Die Regeln sind nicht auf einen Cluster beschränkt. Wenn Sie die Regeln auf einen bestimmten Cluster beschränken möchten, lesen Sie " Einschränken von Regeln auf einen bestimmten Cluster".
Weitere Informationen zu Prometheus-Warnungen finden Sie hier. Wenn Sie andere Open-Source Prometheus-Warnungs-/Aufzeichnungsregeln verwenden möchten, verwenden Sie az-prom-rules-converter , um die Azure-äquivalenten Prometheus-Regeln zu erstellen.
Abrufen weiterer JMX-Exportermetriken mithilfe von Strimzi
Wenn Sie den Strimzi-Operator für die Bereitstellung der Kafka-Cluster verwenden, stellen Sie die Pod-Monitore bereit, um weitere JMX-Exportermetriken zu erhalten.
Metriken müssen von den Kafka-Clusterbereitstellungen verfügbar gemacht werden, z. B. die Beispiele in GitHub. Informationen zum Konfigurieren von Metriken, die verfügbar gemacht werden sollen, finden Sie in den Dateien vom Typ „kafka-.*-metrics.yaml“.
Bei den Podüberwachungen hier wird außerdem davon ausgegangen, dass der Namespace, in dem die Kafka-Workload bereitgestellt wird, kafka
ist. Aktualisieren Sie ihn entsprechend, wenn die Workloads in einem anderen Namespace bereitgestellt werden.
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
Konfigurieren von Warnungen mithilfe von Strimzi
Sie können eine vielzahl von Warnungen basierend auf Strimzi-Metriken konfigurieren, indem Sie auf diese Beispiele verweisen.
Hinweis
Wenn Sie JMX-Exporter in Ihrem Kafka-Cluster auf andere Weise verfügbar machen, befolgen Sie die Anweisungen zum Konfigurieren der Pod- oder Dienstüberwachungen.
Verwenden Sie Strimzi, um Grafana-Dashboards für zusätzliche JMX-Metriken anzuzeigen.
Informationen zum Anzeigen von Dashboards für Metriken, die der Strimzi-Operator verfügbar macht, finden Sie im GitHub-Speicherort von Grafana-Dashboards für Strimzi.
Fehlersuche
Wenn die Dienst- oder Podüberwachungen erfolgreich angewendet werden, befolgen Sie diese Anweisungen , wenn Sie sicherstellen möchten, dass die Dienstüberwachungsziele vom Add-on übernommen werden.