Commande pour obtenir la liste des courtiers kafka de zookeeper
J'écris un script shell pour surveiller les courtiers kafka. J'ai parcouru quelques liens et constaté que si ZooKeeper contient une liste de courtiers, et si, dans cette liste, l'adresse IP est présente, alors un courtier kafka est en cours d'exécution.
Je veux une commande que je peux utiliser dans mon script shell pour obtenir la liste des courtiers et vérifier si kafka est en cours d'exécution.
Existe-t-il une commande curl
pour obtenir le statut de cluster kafka comme elasticsearch?
5 réponses
Cette commande vous donnera la liste des courtiers actifs entre parenthèses:
./zookeeper-shell.sh localhost:2181 <<< "ls /brokers/ids"
Autre façon d'utiliser ZK-Client:
Si vous ne préférez pas passer des arguments à ./zookeeper-shell.sh
et que vous voulez voir les détails du courtier de Zookeeper CLI, vous devez installer Zookeeper autonome (comme Kafka traditionnel ne vient pas avec JLINE JAR).
Une fois que vous avez installé (décompressez) le Zookeeper autonome, alors:
Exécutez la Gardienne de la CLI:
$ zookeeper/bin/zkCli.sh -server localhost:2181
#Make sure your Broker is already running
Si elle est réussie, vous pouvez voir le client Zk en cours D'exécution comme:
WATCHER::
WatchedEvent state:SyncConnected type:None path:null
[zk: localhost:2181(CONNECTED) 0]
- de là, vous pouvez explorer les détails du courtier en utilisant diverses commandes:
$ ls /brokers/ids
# Gives the list of active brokers
$ ls /brokers/topics
#Gives the list of topics
$ get /brokers/ids/0
#Gives more detailed information of the broker id '0'
Pour utiliser les commandes zookeeper avec le script shell, essayez
Zookeeper/bin/zkCli.sh -le serveur localhost:2181
Je l'ai fait comme ceci
#!/bin/bash
ZK_HOST="localhost"
ZK_PORT=2181
for i in `echo dump | nc $ZK_HOST $ZK_PORT | grep brokers`
do
echo $i
DETAIL=`zkCli -server "$ZK_HOST:$ZK_PORT" get $i 2>/dev/null | tail -n 1`
echo $DETAIL
done