Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Apache Kafka est une plateforme open source de diffusion en continu d’événements distribuées utilisée par des pipelines de données hautes performances, l’analytique de streaming, l’intégration des données et des applications stratégiques.
Cet article explique comment configurer le service managé Azure Monitor pour Prometheus avec Azure Kubernetes Service (AKS) et Kubernetes avec Azure Arc pour surveiller les clusters Kafka en supprimant les métriques Prometheus.
Prérequis
- Cluster Kafka s’exécutant sur AKS ou Kubernetes avec Azure Arc - Déployer un cluster Kafka s’exécutant sur AKS
- Prometheus géré par Azure activé sur le cluster - Activer Prometheus géré par Azure sur AKS
Installer l’exportateur Kafka
Installez Prometheus Kafka Exporter à l’aide du graphique 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
Vous pouvez configurer le graphique Helm de l’exportateur Kafka avec des valeurs. Spécifiez les adresses de serveur appropriées où les serveurs Kafka peuvent être atteints. Définissez les adresses du serveur à l’aide de l’argument kafkaServer
.
Remarque
Une configuration de moniteur de pod/service Prometheus managée avec installation à l’aide du graphique Helm est prise en charge uniquement avec la version du graphique Helm 2.10.0 ou supérieure. Si vous souhaitez configurer d’autres moniteurs de service ou de pod, suivez ces instructions.
Importer le tableau de bord Grafana
Pour importer le tableau de bord Grafana (ID 7589) dans l’exportateur Kafka à l’aide de l’ID ou du json, suivez les instructions fournies dans Importer un tableau de bord à partir de Grafana Labs.
Déployer des règles
Téléchargez le fichier de modèle et le fichier de paramètres pour les règles d’alerte.
Modifiez les valeurs suivantes dans le fichier de paramètres.
Paramètre Valeur azureMonitorWorkspace
ID de ressource de l’espace de travail Azure Monitor. Récupérez-le à partir de la vue JSON dans la page Vue d’ensemble de l’espace de travail Azure Monitor. location
Emplacement de l’espace de travail Azure Monitor. Récupérez-le à partir de la vue JSON dans la page Vue d’ensemble de l’espace de travail Azure Monitor. clusterName
Nom du cluster Kubernetes avec AKS ou Azure Arc. Récupérez-le à partir de la vue JSON sur la page Vue d’ensemble du cluster. actionGroupId
ID de ressource pour le groupe d’actions d’alerte. Récupérez-le à partir de la vue JSON sur la page Vue d’ensemble du groupe d’actions. En savoir plus sur les groupes d’actions. Déployez le modèle à l’aide de n’importe quelle méthode standard pour installer des modèles Azure Resource Manager. Pour obtenir des conseils, consultez les exemples de modèles Resource Manager pour Azure Monitor.
Après avoir déployé le modèle, vous pouvez afficher les règles dans le portail Azure, comme décrit dans Afficher les groupes de règles Prometheus. Révisez les seuils d’alerte pour vous assurer qu’ils correspondent à votre cluster et charges de travail. Mettez à jour les seuils en conséquence.
Remarque
Les règles ne sont pas limitées à un cluster. Si vous souhaitez étendre les règles à un cluster spécifique, consultez Limitation des règles à un cluster spécifique.
Vous pouvez en savoir plus sur les alertes Prometheus. Si vous souhaitez utiliser d’autres règles d’alerte/enregistrement Prometheus open source, utilisez az-prom-rules-converter pour créer les règles Prometheus équivalentes à Azure.
Obtenir d’autres métriques JMX Exporter à l’aide de Strimzi
Si vous utilisez l'opérateur Strimzi pour déployer les clusters Kafka, déployez les moniteurs de pods pour obtenir plus de métriques JMX Exporter.
Les métriques doivent être exposées par les déploiements de cluster Kafka, comme les exemples dans GitHub. Reportez-vous aux fichiers kafka-.*-metrics.yaml pour configurer les métriques à exposer.
Ici, les moniteurs de pod supposent également que l’espace de noms où la charge de travail Kafka est déployée est kafka
. Mettez-le à jour en conséquence si les charges de travail sont déployées dans un autre espace de noms.
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
Configurer des alertes à l’aide de Strimzi
Vous pouvez configurer un ensemble complet d’alertes basées sur les métriques Strimzi en faisant référence à ces exemples.
Remarque
Si vous utilisez un autre moyen d’exposer l’exportateur JMX sur votre cluster Kafka, suivez les instructions pour configurer le pod ou les moniteurs de service en conséquence.
Afficher les tableaux de bord Grafana pour plus de métriques JMX à l’aide de Strimzi
Pour afficher les tableaux de bord des métriques exposées par l’opérateur Strimzi, consultez l’emplacement GitHub des tableaux de bord Grafana pour Strimzi.
Résolution des problèmes
Lorsque les moniteurs de service ou les moniteurs de pod sont correctement appliqués, si vous souhaitez vous assurer que le module complémentaire récupère les cibles du moniteur de service, suivez ces instructions.