Потоковая передача данных из Kafka в Azure Stream Analytics (предварительная версия)
Kafka — это распределенная платформа потоковой передачи, используемая для публикации и подписки на потоки записей. Kafka предназначен для того, чтобы приложения могли обрабатывать записи по мере их возникновения. Это система с открытым исходным кодом, разработанная Apache Software Foundation и написанная на Java и Scala.
Ниже приведены основные варианты использования.
- Обмен сообщениями
- Отслеживание действий веб-сайта
- Метрики
- Агрегирование журналов
- Потоковая обработка
Azure Stream Analytics позволяет подключаться непосредственно к кластерам Kafka для приема данных. Решение является низким кодом и полностью управляется командой Azure Stream Analytics в Корпорации Майкрософт, что позволяет ему соответствовать стандартам соответствия бизнес-требованиям. Входные данные ASA Kafka являются обратно совместимыми и поддерживают все версии с последней версией клиента, начиная с версии 0.10. Пользователи могут подключаться к кластерам Kafka в виртуальной сети и кластерах Kafka с общедоступной конечной точкой в зависимости от конфигураций. Конфигурация зависит от существующих соглашений о конфигурации Kafka. Поддерживаемые типы сжатия: None, Gzip, Snappy, LZ4 и Zstd.
Шаги
В этой статье показано, как настроить Kafka в качестве источника входных данных для Azure Stream Analytics. Существует шесть шагов:
- Создайте задание Azure Stream Analytics.
- Настройте задание Azure Stream Analytics для использования управляемого удостоверения, если используется mTLS или протоколы безопасности SASL_SSL.
- Настройте хранилище ключей Azure, если используется mTLS или SASL_SSL протоколы безопасности.
- Отправка сертификатов в качестве секретов в хранилище ключей Azure.
- Предоставьте Azure Stream Analytics разрешения для доступа к отправленном сертификату.
- Настройте входные данные Kafka в задании Azure Stream Analytics.
Примечание.
В зависимости от того, как настроен кластер Kafka и тип используемого кластера Kafka, некоторые из описанных выше шагов могут не применяться к вам. Примеры: если вы используете confluent cloud Kafka, вам не потребуется отправить сертификат для использования соединителя Kafka. Если кластер Kafka находится в виртуальной сети или за брандмауэром, возможно, потребуется настроить задание Azure Stream Analytics для доступа к разделу Kafka с помощью приватного канала или выделенной конфигурации сети.
Настройка
В следующей таблице перечислены имена свойств и их описание для создания входных данных Kafka:
Внимание
Чтобы настроить кластер Kafka в качестве входных данных, тип метки времени входного раздела должен быть LogAppendTime. Единственный тип метки времени Azure Stream Analytics поддерживает LogAppendTime. Azure Stream Analytics поддерживает только числовый десятичный формат.
Имя свойства | Description |
---|---|
Псевдоним ввода и вывода | Понятное имя, используемое в запросах для ссылки на входные или выходные данные |
Адреса сервера начальной загрузки | Список пар узлов и портов для установления подключения к кластеру Kafka. |
Раздел Kafka | Именованный, упорядоченный и секционированные потоки данных, которые позволяют обрабатывать сообщения на основе публикации и подписки на события. |
Протокол безопасности | Как подключиться к кластеру Kafka. Azure Stream Analytics поддерживает MTLS, SASL_SSL, SASL_PLAINTEXT или Нет. |
Идентификатор группы потребителей | Имя группы потребителей Kafka, в которую входные данные должны быть частью. Он будет автоматически назначен, если он не указан. |
Формат сериализации событий | Формат сериализации (JSON, CSV, Avro, Parquet, Protobuf) входящего потока данных. |
Проверка подлинности и шифрование
Для подключения к кластерам Kafka можно использовать четыре типа протоколов безопасности:
Имя свойства | Description |
---|---|
mTLS | Шифрование и проверка подлинности. Поддерживает механизмы безопасности PLAIN, SCRAM-SHA-256 и SCRAM-SHA-512. |
SASL_SSL | Он объединяет два разных механизма безопасности — SASL (простой уровень проверки подлинности и безопасности) и SSL (уровень безопасных сокетов) для обеспечения проверки подлинности и шифрования для передачи данных. Протокол SASL_SSL поддерживает механизмы безопасности PLAIN, SCRAM-SHA-256 и SCRAM-SHA-512. |
SASL_PLAINTEXT | стандартная проверка подлинности с использованием имени пользователя и пароля без шифрования |
нет | Проверка подлинности и шифрование отсутствует. |
Внимание
Confluent Cloud поддерживает проверку подлинности с помощью ключей API, OAuth или единого входа SAML. Azure Stream Analytics не поддерживает проверку подлинности единого входа OAuth или SAML. Вы можете подключиться к облаку confluent с помощью ключа API с доступом на уровне раздела через протокол безопасности SASL_SSL.
Пошаговое руководство по подключению к cloud kakfa confluent см. в документации.
- Confluent cloud kafka input: Stream data from confluent cloud Kafka with Azure Stream Analytics
- Выходные данные cloud kafka confluent: потоковая передача данных из Azure Stream Analytics в облако confluent
Интеграция хранилища ключей
Примечание.
При использовании сертификатов хранилища доверия с протоколами безопасности mTLS или SASL_SSL необходимо иметь хранилище ключей Azure и управляемое удостоверение, настроенное для задания Azure Stream Analytics. Проверьте параметры сети хранилища ключей, чтобы убедиться, что выбрано разрешение общедоступного доступа из всех сетей . Предположим, что хранилище ключей находится в виртуальной сети или разрешает доступ только из определенных сетей. В этом случае необходимо внедрить задание ASA в виртуальную сеть, содержащую хранилище ключей, или внедрить задание ASA в виртуальную сеть, а затем подключить хранилище ключей к виртуальной сети, содержащей задание с помощью конечных точек службы.
Azure Stream Analytics легко интегрируется с хранилищем ключей Azure для доступа к сохраненным секретам, необходимым для проверки подлинности и шифрования при использовании MTLS или протоколов безопасности SASL_SSL. Задание Azure Stream Analytics подключается к хранилищу ключей Azure с помощью управляемого удостоверения, чтобы обеспечить безопасное подключение и избежать кражи секретов. Сертификаты хранятся в виде секретов в хранилище ключей и должны находиться в формате PEM.
Настройка хранилища ключей с разрешениями
Вы можете создать ресурс хранилища ключей, выполнив краткое руководство по созданию хранилища ключей с помощью портал Azure для отправки сертификатов у вас должен быть доступ "Администратор Key Vault". Выполните следующие действия, чтобы предоставить администратору доступ:
Примечание.
У вас должны быть разрешения "Владелец" для предоставления других разрешений хранилища ключей.
Выберите Управление доступом (IAM) .
Выберите Добавить>Добавить назначение ролей, чтобы открыть страницу Добавление назначения ролей.
Назначьте роль с помощью следующей конфигурации:
Параметр | Значение |
---|---|
Роль | Администратор хранилища ключей |
Назначить доступ для | Пользователь, группа или субъект-служба |
Участники | <Сведения о вашей учетной записи или электронная почта> |
Отправка сертификата в хранилище ключей с помощью Azure CLI
Внимание
Для правильной работы этой команды необходимо иметь разрешение "Администратор Key Vault" для правильной передачи сертификата в виде секрета. Для отправки сертификатов в хранилище ключей необходимо использовать Azure CLI. Задание Azure Stream Analytics завершится ошибкой, когда срок действия сертификата, используемого для проверки подлинности. Чтобы устранить эту проблему, необходимо обновить или заменить сертификат в хранилище ключей и перезапустить задание Azure Stream Analytics.
Убедитесь, что azure CLI настроен локально с помощью PowerShell. Вы можете посетить эту страницу, чтобы получить рекомендации по настройке Azure CLI: начало работы с Azure CLI
Войдите в Azure CLI:
az login
Подключитесь к подписке, содержащей хранилище ключей:
az account set --subscription <subscription name>
Следующая команда может отправить сертификат в качестве секрета в хранилище ключей:
Имя <your key vault>
хранилища ключей, в которое нужно отправить сертификат. <name of the secret>
— любое имя, которое вы хотите дать секрету и как оно отображается в хранилище ключей. <file path to certificate>
— путь к расположению сертификата. Щелкните правой кнопкой мыши и скопируйте путь к сертификату.
az keyvault secret set --vault-name <your key vault> --name <name of the secret> --file <file path to certificate>
Например:
az keyvault secret set --vault-name mykeyvault --name kafkasecret --file C:\Users\Downloads\certificatefile.pem
Настройка управляемого удостоверения
Azure Stream Analytics требует настройки управляемого удостоверения для доступа к хранилищу ключей. Задание ASA можно настроить для использования управляемого удостоверения, перейдя на вкладку "Управляемое удостоверение " слева в разделе "Настройка".
- Перейдите на вкладку Управляемое удостоверение в разделе Настройка.
- Выберите параметр "Переключить удостоверение " и выберите удостоверение, используемое с заданием: назначаемое системой удостоверение или удостоверение, назначаемое пользователем.
- Для удостоверения, назначаемого пользователем, выберите подписку, в которой находится удостоверение, назначаемое пользователем, и выберите имя удостоверения.
- Проверьте и сохраните.
Предоставление разрешений на задание Stream Analytics для доступа к сертификату в хранилище ключей
Чтобы задание Azure Stream Analytics читало секрет в хранилище ключей, задание должно иметь разрешение на доступ к хранилищу ключей. Чтобы предоставить специальные разрешения заданию Stream Analytics, выполните следующие действия.
Выберите Управление доступом (IAM) .
Выберите Добавить>Добавить назначение ролей, чтобы открыть страницу Добавление назначения ролей.
Назначьте роль с помощью следующей конфигурации:
Параметр | Значение |
---|---|
Роль | Пользователь секретов хранилища ключей |
Управляемое удостоверение | Задание Stream Analytics для управляемого удостоверения, назначаемого системой, или управляемого удостоверения, назначаемого пользователем |
Участники | <Имя задания> Stream Analytics или <имя назначаемого пользователем удостоверения> |
Интеграция с виртуальной сетью
Если кластер Kafka находится в виртуальной сети или за брандмауэром, возможно, потребуется настроить задание Azure Stream Analytics для доступа к разделу Kafka с помощью приватного канала или выделенной конфигурации сети. Дополнительные сведения см. в статье "Запуск задания Azure Stream Analytics" в документации по Azure виртуальная сеть.
Ограничения
- При настройке заданий Azure Stream Analytics для использования виртуальной сети или SWIFT задание должно быть настроено как минимум с шестью (6) единицами потоковой передачи или одной единицей потоковой передачи версии 2 (1).
- При использовании mTLS или SASL_SSL с хранилищем ключей Azure необходимо преобразовать хранилище ключей Java в формат PEM.
- Минимальная версия Kafka, к которому можно подключиться, можно настроить Azure Stream Analytics, версия 0.10.
- Azure Stream Analytics не поддерживает проверку подлинности для слияния облака с помощью OAuth или единого входа SAML. Ключ API необходимо использовать с помощью протокола SASL_SSL
Примечание.
Чтобы получить прямую справку по использованию входных данных Azure Stream Analytics Kafka, обратитесь к askasa@microsoft.com.