Kafka Инструмент мониторинга в производстве
Нужно проверить инструмент для мониторинга Кафки в производстве. Также инструмент не должен иметь лицензии или тяжелого оборудования. В частности, мне нужен инструмент для оценки потребительского возмещения по теме, здоровья темы.
3 ответа
Landoop
Landoop расширяет возможности Kafka благодаря пользовательскому интерфейсу, потоковому движку SQL и мониторингу кластеров. Это обеспечивает более быстрый мониторинг конвейеров данных Kafka.
Они предоставляют бесплатную док- станцию " все в одном" ( LENSES Box), которая может обслуживать одного брокера до 25 миллионов сообщений. Обратите внимание, что это рекомендуется для сред разработки.
сливающийся
Другим вариантом является Confluent Enterprise, который является дистрибутивом Kafka для производственных сред. В него также входит Control Center, представляющий собой систему управления для Apache Kafka, которая обеспечивает мониторинг и управление кластером из пользовательского интерфейса.
Yahoo Kafka Manager
Kafka Manager - это инструмент для мониторинга Kafka, предлагающий меньшую функциональность по сравнению с вышеупомянутыми инструментами.
KafDrop
KafDrop - это пользовательский интерфейс для мониторинга кластеров Apache Kafka. Инструмент отображает такую информацию, как брокеры, темы, разделы и даже позволяет просматривать сообщения. Это легковесное приложение, которое работает на Spring Boot и требует очень небольшой настройки.
LinkedIn Нора
Burrow - это компаньон для мониторинга Apache Kafka, который обеспечивает проверку отставания потребителя в качестве службы без указания пороговых значений. Он отслеживает фиксированные смещения для всех потребителей и вычисляет статус этих потребителей по требованию. Конечная точка HTTP предоставляется для запроса статуса по требованию, а также для предоставления другой информации о кластере Kafka. Существуют также настраиваемые уведомители, которые могут отправлять сведения о состоянии по электронной почте или по HTTP-вызовам в другую службу.
Кафка Инструмент
Kafka Tool - это приложение с графическим интерфейсом для управления и использования кластеров Apache Kafka. Он предоставляет интуитивно понятный пользовательский интерфейс, который позволяет быстро просматривать объекты в кластере Kafka, а также сообщения, хранящиеся в темах кластера. Он содержит функции, предназначенные как для разработчиков, так и для администраторов.
Я боюсь, что вы не найдете бесплатных продуктов, подходящих для производственной среды, но если вы не можете себе это позволить, тогда обратитесь за помощью к Yahoo Kafka Manager, LinkedIn Burrow или KafDrop. Продукты Confulent и Landoop являются лучшими, но, к сожалению, они требуют лицензирования.
Существует несколько бесплатных решений для мониторинга, но у всех есть свои ограничения. Например, Burrow, Kafka Manager, Kafdrop, и вы можете создавать свои собственные с метриками JMX плюс что-то вроде InfluxDB и Grafana.
Confluent Control Center идеально подходит для ваших требований, однако для него требуется лицензия. Существует 30-дневная бесплатная пробная версия. Требуется нечто большее, чем просто мониторинг нескольких метрик, фактический мониторинг отдельных тем и сообщений, проходящих через каждую контрольную сумму, для обеспечения точных отчетов о потреблении.
Кафка производит довольно много информации в / через JMX. Вы можете использовать любой JMX-клиент, чтобы получить его. Даже внутри своего приложения вы можете пересылать информацию Kafka JMX вам в JMX MBeans для создания, так сказать, JMX Facade или около того.
Некоторые конкретные предложения:
- Графана прекрасно работает с Кафкой. Вы также можете загрузить из сети несколько готовых к использованию информационных панелей.
- Я также использовал hawtio, чтобы увидеть информацию JMX, и это тоже хорошо
Это зависит от степени контроля и уровня автоматизации. Kafka Manager - хорошее место для начала, чтобы получить представление о состоянии кластера, пропускной способности, задержке и т. Д., А также о некоторых основных административных операциях, но довольно скоро вы добьетесь большего. Например, вам нужно следить за здоровьем своих потребителей? Вам нужно просматривать содержимое тем для отладки приложений, вскрытия, отслеживания потока сообщений и т. Д.? Как вы будете обрабатывать плохие / искаженные сообщения, "отравленные" темы и т. Д.? Я бы посоветовал добавить в ваш набор инструментов еще несколько элементов:
- Burrow - отслеживает отставание группы потребителей и выдает предупреждения, если потребители отстают.
- Kafdrop 3 - предоставляет информацию о брокере и позволяет просматривать содержимое темы (как в текстовом, так и в формате Avro). Это более поздний форк оригинального проекта Kafdrop, который поддерживает последние версии Kafka. ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ: Я являюсь одним из сопровождающих проекта.
- Prometheus и Grafana - есть некоторое совпадение с Manager/Monitor, но Prometheus/Grafana намного более доработаны, имеют существенную поддержку сообщества и их легче интегрировать с другими инструментами, автоматически создавать предупреждения и т. Д.
Все вышеперечисленное имеет открытый исходный код и не требует лицензирования. Я не включил в список инструменты Confluent, Landoop или KaDeck просто потому, что они коммерческие и требуют лицензирования. И они действительно не дают вам многого по альтернативам OSS, ИМХО.
Запустив Kafka в течение некоторого времени в качестве основной магистрали обмена сообщениями / событий для крупных развертываний микросервисов с 2014 года, не могу не подчеркнуть важность выхода за рамки простых проверок на уровне брокера и просмотра всего сквозного пути сообщения, от производителя до потребителей. По иронии судьбы, большую часть времени, когда мы чувствовали, что брокеры подыгрывают, на самом деле это были плохо написанные приложения. Мы склонны использовать комбинацию инструментов, вплоть до написания наших собственных базовых "канареечных" приложений, которые будут делать вид, что действуют как производители и потребители сообщений, и дают нам опережающий указатель, когда что-то идет не так.
Kafka поставляется с некоторыми собственными базовыми инструментами CLI в $KAFKA_HOME/bin
, Такие как kafka-console-consumer.sh
(для чтения темы) и другие инструменты, такие как kafka-topics.sh
а также kafka-configs.sh
для административных задач. Также есть отдельный инструмент - Kafkacat - для просмотра тем. Но, по моему опыту, они используются в крайнем случае, например, если вы теряете подключение к кластеру и вам нужно выполнить оболочку на одном из узлов брокера, тогда они действительно очень полезны. Но сами по себе они не являются инструментами мониторинга.
Это зависит от степени мониторинга и уровня автоматизации. Kafka Manager - это хорошее место для начала, чтобы узнать о состоянии кластера, его пропускной способности, задержке и т. Д., А также о некоторых базовых операциях администратора, но вскоре вы достигнете большего. Например, нужно ли вам следить за здоровьем ваших потребителей? Вам нужно просматривать содержимое тем для отладки приложений, выполнения посмертных сообщений, отслеживания потока сообщений и т. Д.? Как вы будете обрабатывать плохие / искаженные сообщения, "отравленные" темы и т. Д.? Я бы предложил добавить еще несколько элементов в ваш набор инструментов:
- Burrow - контролирует отставание группы потребителей и выдает предупреждения, если потребители отстают.
- Kafdrop 3 - предоставляет информацию о брокере и позволяет просматривать содержимое тем (как текстовых, так и форматов Avro). Это более поздняя версия оригинального проекта Kafdrop, которая активно поддерживается и хорошо сочетается с Docker и Kubernetes. (Небольшой отказ от ответственности: я участвовал в этом инструменте по случаю, но я не оригинальный автор.)
- Prometheus и Grafana - есть некоторые совпадения с Manager/Monitor, но Prometheus/Grafana намного более усовершенствованы, имеют существенную поддержку сообщества и их легче интегрировать с другими инструментами, автоматически генерировать оповещения и т. Д.
Все вышеперечисленное является открытым исходным кодом и не требует лицензирования. Я не включил в список инструменты Confluent, Landoop или KaDeck просто потому, что они являются коммерческими и требуют лицензирования. И они на самом деле не дают вам много вариантов OSS, ИМХО.
Запустив Kafka в течение некоторого времени в качестве основной магистрали обмена сообщениями / событиями для крупных развертываний микросервисов с 2014 года, мы не можем не подчеркнуть важность выхода за рамки простых проверок на уровне брокера и рассмотрения всего сквозного пути сообщения от производителя до потребителей. По иронии судьбы, мы обнаружили, что большую часть времени мы чувствовали, что брокеры играют, на самом деле это были плохо написанные приложения. Мы склонны использовать комбинацию инструментов, вплоть до написания наших собственных базовых "канареечных" приложений, которые будут выдавать себя за производителей и потребителей сообщений и давать нам главный признак того, что что-то не в порядке.
Кафка поставляется с некоторыми основными инструментами CLI в $KAFKA_HOME/bin
, такие как kafka-console-consumer.sh
(для чтения темы) и другие инструменты, такие как kafka-topics.sh
а также kafka-configs.sh
для административных задач. Также есть отдельный инструмент kafkacat для просмотра тем. Но, по моему опыту, они используются в качестве крайней меры, например, если вы теряете связь с кластером и нуждаетесь в оболочке на одном из узлов брокера, тогда они очень полезны. Но они не являются инструментами мониторинга как таковыми.
Я только что выпустил графический интерфейс с открытым исходным кодом для kafka: https://github.com/tchiotludo/kafkahq Любые отзывы приветствуются!
Вы также можете найти другой пользовательский интерфейс здесь: https://github.com/monksy/awesome-kafka/blob/master/tools.md#dashboards
Elasticsearch часто используется для мониторинга Kafka. Он бесплатный, универсальный и работает с программным обеспечением для визуализации Kibana (также бесплатным) для построения графиков. Я ссылаюсь на статью, в которой показано, что именно вы хотите отслеживать, например скорость получения данных и то, как далеко потребители отстают в очереди. https://dattell.com/data-architecture-blog/kafka-monitoring-with-elasticsearch-and-kibana/
Xeotek KaDeck - это бесплатное решение для мониторинга Apache Kafka, которое работает как кроссплатформенное настольное приложение или как веб-служба (только "Корпоративная версия") на вашем настольном ПК или контейнере.
KaDeck специализируется на анализе данных, сквозном мониторинге и быстром создании прототипов приложений на Java и JavaScript. Можно писать сложные запросы (например, на JavaScript), а соответствующие данные можно фильтровать и отображать в понятной таблице. Также отображается временное распределение наборов данных и источник данных (в виде блок-схемы). Конечно, также можно создавать данные, управлять темами и многое другое.
Одним из наиболее важных уникальных аргументов в пользу продажи является то, что приложение было разработано таким образом, чтобы его могли использовать разработчики, бизнес-подразделения и операторы приложений.
Веб-версия также предлагает управление доступом на основе ролей, журналы аудита и многое другое.
Кроме того, KaDeck не является инструментом мониторинга инфраструктуры. Поэтому, если вы в первую очередь хотите контролировать потребление памяти вашими брокерами (и т. Д.), Вам следует вместо этого взглянуть на один из бесчисленных инструментов APM. Это также имеет смысл, потому что они могут делать намного больше, и операции инфраструктуры не должны вводить отдельный инструмент для каждого компонента. KaDeck вместо этого занимается разработкой и эксплуатацией приложений, анализом данных и процессов для новых бизнес-вариантов использования и, таким образом, обеспечивает прозрачность данных.
Я основатель Xeotek, поэтому очень рад вашим отзывам.