Aller au contenu principal

Administration Guides

Lister tous les pods kafka existants

Pour lister l'opérateur Kafka :

kubectl -n shared-stream get pods -l strimzi.io/kind=cluster-operator
NAME READY STATUS RESTARTS AGE
strimzi-cluster-operator-56c6f9866b-x7pd9 1/1 Running 0 43h

Pour lister tous les pods du cluster Kafka :

kubectl -n shared-stream get pods -l app.kubernetes.io/instance=shared-cluster
NAME READY STATUS RESTARTS AGE
shared-cluster-entity-operator-5d8f4f474b-fxz5j 2/2 Running 0 43h
shared-cluster-node-0 1/1 Running 0 43h
shared-cluster-node-1 1/1 Running 0 43h <- si en mode HA
shared-cluster-node-2 1/1 Running 0 43h <- si en mode HA

Lister tous les topics kafka existants

La commande est :

kubectl -n shared-stream get kafkatopics
NAME                         CLUSTER          PARTITIONS   REPLICATION FACTOR   READY
escrim-dictionarytopic shared-cluster 1 2 False
escrim-indextopicknowledge shared-cluster 1 2 False

Consulter les messages dans un topic Kafka

Pour utiliser les scripts utilitaires spécifiques à kafka (kafka-console-consumer.sh ou kafka-consumer-groups.sh, ... ), il faut accéder au pod de kafka dans kubernetes via la console K8S. Une fois dans le pod, toutes les commandes des utilitaires Kafka sont disponibles.

Identifiants de connexion

Vous aurez besoin, pour les différentes commandes, d'un fichier contenant les credentials. Pour cela vous devez lancer la commande suivante :

echo -e 'sasl.jaas.config=org.apache.kafka.common.security.scram.ScramLoginModule required username="user" password="password";\nsecurity.protocol=SASL_PLAINTEXT\nsasl.mechanism=SCRAM-SHA-512' | tee /tmp/creds.properties

le user et le password sont à récupérer dans la KI de l'EDS requété (voir procedures EDS).

Accéder au shell du pod

Lister les messages via l'outil kafka-console-consumer.sh, en utilisant le fichier de crédentials.

./bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 \
--topic ivvqpkafka \
--group pkafka \
--from-beginning \
--consumer.config /tmp/creds.properties

Les messages sont listés. Taper ctrl+C pour sortir.

Compter le nombre de lignes dans un topic Kafka

./bin/kafka-run-class.sh org.apache.kafka.tools.GetOffsetShell --command-config /tmp/creds.properties --broker-list localhost:9092 --topic escrim-dictionarytopic --time -1
escrim-dictionarytopic:0:6
escrim-dictionarytopic:1:8

Dans l'exemple ci-dessus, le topic possède 6 messages sur la partition 0 et 8 sur la partition 1.

Consulter les offsets d'un groupe pour savoir où en est la lecture d'un topic

En utilisant un user qui a les droits de lecture sur le groupe voulu :

./bin/kafka-consumer-groups.sh --bootstrap-server localhost:9092 --describe --group escrim --command-config /tmp/creds.properties

Consumer group 'escrim' has no active members.

GROUP TOPIC PARTITION CURRENT-OFFSET LOG-END-OFFSET LAG CONSUMER-ID HOST CLIENT-ID
escrim escrim-dictionarytopic 0 6 6 0 - - -
escrim escrim-dictionarytopic 1 8 8 0 - - -

Dans cet exemple, les 6 messages de la partition 0 et les 8 messages de la partition 2 ont été lus par le groupe 'pkafe'.