Команда получить список брокеров Кафки от zookeeper


Я пишу сценарий оболочки для мониторинга брокеров Кафки. Я прошелся по некоторым ссылкам и обнаружил, что если ZooKeeper содержит список брокеров, и если в этом списке присутствует IP-адрес, то работает брокер Кафки.

Мне нужна команда, которую я могу использовать в своем скрипте оболочки, чтобы получить список брокеров и проверить, работает ли kafka.

Существует ли какая-либо команда curl для получения статуса кластера Кафки, например elasticsearch?

5 22

5 ответов:

Эта команда даст вам список активных брокеров между скобками:

./zookeeper-shell.sh localhost:2181 <<< "ls /brokers/ids"

Альтернативный способ использования Zk-клиента:

Если вы не хотите передавать аргументы в ./zookeeper-shell.sh и хотите видеть детали брокера от ZooKeeper CLI, вам нужно установить автономный Zookeeper (так как традиционный Кафка не придумывает jline JAR).

Как только вы установите (распакуете) автономный Zookeeper, то:

  • Бегите в зоопарк Кли:
    $ zookeeper/bin/zkCli.sh -server localhost:2181 #Make sure your Broker is already running

  • Если это успешно, вы можете увидеть, что клиент Zk работает как:

WATCHER::

WatchedEvent state:SyncConnected type:None path:null
[zk: localhost:2181(CONNECTED) 0]
  • Здесь вы можете изучить детали брокера, используя различные команды:

$ 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'

echo dump | nc localhost 2181 | grep brokers

Чтобы использовать команды zookeeper со скриптом оболочки, попробуйте

Zookeeper/bin/zkCli.sh -сервер localhost: 2181

Я сделал это так

#!/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