Следите, проснулся ли Кафка?

#apache-kafka #kafka-python

Вопрос:

Мне нужно просто следить, работает ли мой кластер Кафки. Иногда машины, на которых работал Кафка, отключались. Я хочу отправить уведомление по электронной почте, если кластер недоступен.

Я могу создать производителя и потребителя, чтобы периодически отправлять и получать фиктивные сообщения. Есть ли более простой способ сделать это?

Комментарии:

1. Какой фреймворк вы используете?

2. @MohamedSweelam Питон Кафка

3. Вы можете установить Datadog/Nagios/Sysdig и т. Д. Для полного мониторинга системы, а не только для Кафки

Ответ №1:

Вы можете использовать https://github.com/obsidiandynamics/kafdrop Это не будет отправлять вам электронные письма, но это намного проще, чем отправлять фиктивные сообщения

Ответ №2:

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

Одно предложение, которое я прочитал, которое может дать вам наиболее верный подход, заключается в том, чтобы создавать «фиктивные» msg для ваших прикладных тем и «пропускать» эти msg при потреблении, что гарантирует, что ваше приложение будет работать. Мне не очень нравится этот подход, так как он требует «отправлять мусор на ваши основные темы»

Другие подходы похожи на то, как вы говорите «производить/потреблять в/из темы тестирования/проверки работоспособности», но это может не дать полной гарантии того, что ваше приложение будет работать, это очень похоже на select from dummy в других подходах к БД… если для них этого достаточно….

Другое предложение состоит в том, чтобы использовать AdminClient для чтения показателей кластера , если предоставляются показатели, которые обычно означают, что кластер исправен, также не очень хорошая гарантия…

Ответ №3:

Я спросил в комментарии, какой язык вы используете, может быть, вы используете что-то вроде spring, которое должно HealthIndicator проверять состояние компонентов, но в вашем случае это было бы немного по-другому.

Прежде всего, вы должны знать, что Kafka по умолчанию должен быть доступен с высокой доступностью, поэтому при построении кластера вы должны следовать смелым рекомендациям, вы должны убедиться, что у вас есть копии машин. Это хорошее предположение, которое сделает вас удовлетворенным реализацией всего этого.

Но, если вы хотите проверить работоспособность кластера, вы можете использовать процесс администрирования, вы можете использовать AdminClient с помощью некоторых утилит; вы можете проверить список тем, групп и т. Д., Которые у вас есть. Но это не 100% гарантия для вас, хотя это хороший обходной путь.

Вы можете сделать это, используя, как вы упомянули, периодический планировщик, и отправить электронное письмо на основе полученных результатов. Но опять же, это не идеальное решение, и инфраструктура кластера HA должна сэкономить вам много времени, если вы построите ее правильно с самого начала.