Bonnes pratiques pour surveiller la santé de Kafka avec les commandes intégrées
Utilisez les commandes CLI de Kafka pour vérifier la réplication des sujets, le retard des consommateurs, l'état de l'API du courtier et la santé de base du cluster lors d'incidents.
Bonnes pratiques pour surveiller la santé de Kafka avec les commandes intégrées
Les commandes intégrées de Kafka sont le moyen le plus rapide de répondre aux questions de base lors d'incidents : les partitions sont-elles dirigées, les répliques sont-elles synchronisées et les consommateurs sont-ils en retard ? Elles ne remplacent pas Prometheus, JMX ou une plateforme de surveillance gérée, mais elles sont excellentes pour des vérifications rapides depuis un hôte bastion ou un conteneur d'administration.
Les exemples ci-dessous utilisent --bootstrap-server, qui est le chemin client actuel pour les commandes d'administration Kafka.
Définir un environnement de commande propre
Conservez la liste des courtiers dans une variable pour que chaque commande soit reproductible :
export KAFKA_HOME=/opt/kafka
export BOOTSTRAP_SERVER="kafka1:9092,kafka2:9092,kafka3:9092"
cd "$KAFKA_HOME/bin"
Si votre cluster utilise TLS ou SASL, placez les paramètres client dans un fichier de propriétés et transmettez-le avec --command-config :
./kafka-topics.sh \
--bootstrap-server "$BOOTSTRAP_SERVER" \
--command-config /etc/kafka/admin-client.properties \
--list
Vérifier la santé des sujets et des partitions
Commencez par kafka-topics.sh --describe. Un sujet sain doit avoir un leader pour chaque partition et une liste de répliques synchronisées correspondant au facteur de réplication attendu.
./kafka-topics.sh \
--bootstrap-server "$BOOTSTRAP_SERVER" \
--describe \
--topic orders
Recherchez ces champs :
Leader: ne doit pas êtrenone.Replicas: les courtiers assignés à la partition.Isr: les répliques actuellement synchronisées avec le leader.
Si Replicas a trois courtiers mais Isr n'en a qu'un, le sujet est sous-répliqué. Cela indique généralement un temps d'arrêt du courtier, une pression sur le disque, des problèmes réseau ou une réplique qui ne peut pas suivre.
Trouver rapidement les partitions sous-répliquées
Utilisez le filtre intégré lorsque vous avez besoin d'une vérification rapide à l'échelle du cluster :
./kafka-topics.sh \
--bootstrap-server "$BOOTSTRAP_SERVER" \
--describe \
--under-replicated-partitions
Pas de sortie est une bonne nouvelle. Toute sortie mérite une enquête, en particulier pour les sujets avec min.insync.replicas configuré pour une durabilité renforcée.
Surveiller le retard des consommateurs
Le retard des consommateurs vous indique si un groupe de consommateurs suit le rythme des enregistrements produits.
./kafka-consumer-groups.sh \
--bootstrap-server "$BOOTSTRAP_SERVER" \
--describe \
--group payments-worker
Les colonnes importantes incluent :
CURRENT-OFFSET: où le groupe a validé sa progression.LOG-END-OFFSET: le dernier décalage dans la partition.LAG: la différence entre les deux.CONSUMER-ID,HOSTetCLIENT-ID: quel consommateur possède la partition.
De courts pics peuvent être normaux lors de déploiements ou de pics de trafic. Un retard soutenu signifie que le groupe a besoin d'attention : traitement lent, trop peu de consommateurs, déséquilibre des partitions, latence des dépendances en aval ou retards côté courtier dans les récupérations.
Lister les groupes de consommateurs actifs
Lorsque vous ne connaissez pas le nom du groupe, listez d'abord les groupes :
./kafka-consumer-groups.sh \
--bootstrap-server "$BOOTSTRAP_SERVER" \
--list
Inspectez ensuite le groupe qui correspond à l'application affectée.
Vérifier l'accessibilité de l'API du courtier
kafka-broker-api-versions.sh est un moyen simple de confirmer que votre client peut atteindre les courtiers et effectuer une poignée de main métadonnées/API.
./kafka-broker-api-versions.sh \
--bootstrap-server "$BOOTSTRAP_SERVER"
Si cela échoue, vérifiez le DNS, les groupes de sécurité ou les pare-feu, les paramètres TLS/SASL et si les adresses des écouteurs annoncés sont accessibles depuis l'endroit où vous exécutez la commande.
Utiliser les vérifications CLI lors d'incidents
Un flux de triage pratique ressemble à ceci :
- Exécutez
kafka-broker-api-versions.shpour confirmer la connectivité. - Exécutez
kafka-topics.sh --describe --under-replicated-partitionspour vérifier la santé de la réplication. - Décrivez le sujet affecté et vérifiez les leaders et l'ISR.
- Décrivez le groupe de consommateurs affecté et vérifiez le retard par partition.
- Comparez les partitions lentes avec les journaux du courtier, du disque et de l'application.
À retenir
Les commandes intégrées de Kafka vous offrent un premier aperçu fiable de la santé du cluster. Gardez les configurations du client d'administration prêtes, utilisez --bootstrap-server et concentrez-vous sur les leaders, l'ISR, les partitions sous-répliquées et le retard des consommateurs. Une fois que la CLI montre où se situe le problème, les métriques et journaux plus approfondis du courtier sont beaucoup plus faciles à interpréter.