Кафка мониторинг в кластерной среде - PullRequest
1 голос
/ 07 июня 2019

У меня есть кластер kafka (3 машины с 1 zookeeper и 1 брокером на каждой машине) Я использую kafka_exporter для мониторинга потребительского показателя отставания, он нормально работает в обычном случае. Но когда я убиваю 1 брокера, Прометей не может получить метрику от http://machine1:9308/metric (конечная точка метрики kafka_exporter), потому что для получения данных (1,5 м) требуется много времени, поэтому это будет тайм-аут. Теперь, если я перезапущу kafka_exporter, я увижу ошибку:

Cannot get leader of topic __consumer_offsets partition 20: kafka server: In the middle of a leadership election, there is currently no leader for this partition and hence it is unavailable for writes

Когда я запускаю команду: kafka-themes.bat --describe --zookeeper machine1: 2181, machine2: 2181, machine3: 2181 --topic __consumer_offsets Результат:

Topic:__consumer_offsets        PartitionCount:50       ReplicationFactor:1     Configs:compression.type=producer,cleanup.policy=compact,segment.bytes=104857600
Topic: __consumer_offsets       Partition: 0    Leader: -1      Replicas: 1     Isr: 1
Topic: __consumer_offsets       Partition: 1    Leader: 2       Replicas: 2     Isr: 2

Topic: __consumer_offsets       Partition: 49   Leader: 2       Replicas: 2     Isr: 2

Это ошибка конфигурации? И как я могу получить потребительское отставание в этом случае? «Лидер: -1» является ошибкой? если я остановлю машину 1 навсегда, она все равно будет работать нормально?

1 Ответ

1 голос
/ 07 июня 2019

Лидер, означающий -1, означает, что в кластере нет другого посредника, у которого есть копия данных для раздела.

Проблема в вашем случае заключается в том, что коэффициент репликации для вашей темы __consumer_offsets равен 1, что означает, что только один посредник размещает данные любого раздела в теме. Если вы потеряете одного из посредников, все разделы посредника станут недоступными, в результате чего тема станет недоступной. Таким образом, ваш kafka_exporter не сможет прочитать из этой темы.

Исправление, если вы хотите продолжить экспорт потребительских смещений при потере посредника, - это перенастроить раздел __consumer_offsets, чтобы коэффициент репликации был больше 1.

Рекомендуемая конфигурация - Коэффициент репликации - 3, min.insync.replicas - 2.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...