Przesyłanie strumieniowe danych z platformy Kafka do usługi Azure Stream Analytics
Kafka to rozproszona platforma przesyłania strumieniowego używana do publikowania i subskrybowania strumieni rekordów. Platforma Kafka została zaprojektowana tak, aby umożliwić aplikacjom przetwarzanie rekordów w miarę ich występowania. Jest to system open source opracowany przez platformę Apache Software Foundation i napisany w językach Java i Scala.
Poniżej przedstawiono główne przypadki użycia:
- Obsługa komunikatów
- Śledzenie aktywności witryny internetowej
- Metryki
- Agregacja dzienników
- Przetwarzanie strumieniowe
Usługa Azure Stream Analytics umożliwia bezpośrednie łączenie się z klastrami platformy Kafka w celu pozyskiwania danych. Rozwiązanie to niski kod i całkowicie zarządzane przez zespół usługi Azure Stream Analytics w firmie Microsoft, co pozwala na spełnianie standardów zgodności biznesowej. Dane wejściowe platformy Kafka są zgodne z poprzednimi wersjami i obsługują wszystkie wersje z najnowszą wersją klienta, począwszy od wersji 0.10. Użytkownicy mogą łączyć się z klastrami platformy Kafka w sieci wirtualnej i klastrami Kafka z publicznym punktem końcowym w zależności od konfiguracji. Konfiguracja opiera się na istniejących konwencjach konfiguracji platformy Kafka. Obsługiwane typy kompresji to None, Gzip, Snappy, LZ4 i Zstd.
Kroki
W tym artykule pokazano, jak skonfigurować platformę Kafka jako źródło danych wejściowych dla usługi Azure Stream Analytics. Istnieją sześć kroków:
- Utwórz zadanie usługi Azure Stream Analytics.
- Skonfiguruj zadanie usługi Azure Stream Analytics, aby używać tożsamości zarządzanej, jeśli używasz protokołów zabezpieczeń mTLS lub SASL_SSL.
- Skonfiguruj usługę Azure Key Vault, jeśli używasz protokołów zabezpieczeń mTLS lub SASL_SSL.
- Przekazywanie certyfikatów jako wpisów tajnych do usługi Azure Key Vault.
- Udziel uprawnień usługi Azure Stream Analytics, aby uzyskać dostęp do przekazanego certyfikatu.
- Skonfiguruj dane wejściowe platformy Kafka w zadaniu usługi Azure Stream Analytics.
Uwaga
W zależności od sposobu konfigurowania klastra platformy Kafka i typu używanego klastra kafka niektóre z powyższych kroków mogą nie mieć zastosowania do Ciebie. Przykłady: jeśli używasz platformy Kafka w chmurze confluent, nie musisz przekazywać certyfikatu do korzystania z łącznika platformy Kafka. Jeśli klaster Platformy Kafka znajduje się w sieci wirtualnej lub za zaporą, może być konieczne skonfigurowanie zadania usługi Azure Stream Analytics w celu uzyskania dostępu do tematu platformy Kafka przy użyciu łącza prywatnego lub dedykowanej konfiguracji sieci.
Konfigurowanie
W poniższej tabeli wymieniono nazwy właściwości i ich opis tworzenia danych wejściowych platformy Kafka:
Ważne
Aby skonfigurować klaster platformy Kafka jako dane wejściowe, typ znacznika czasu tematu wejściowego powinien mieć wartość LogAppendTime. Jedynym typem znacznika czasu obsługiwana przez usługę Azure Stream Analytics jest LogAppendTime. Usługa Azure Stream Analytics obsługuje tylko format liczbowy dziesiętny.
Nazwa właściwości | Opis |
---|---|
Alias danych wejściowych/wyjściowych | Przyjazna nazwa używana w zapytaniach do odwołowania się do danych wejściowych lub wyjściowych |
Adresy serwerów bootstrap | Lista par hostów/portów do nawiązania połączenia z klastrem Kafka. |
Temat platformy Kafka | Nazwany, uporządkowany i podzielony na partycje strumień danych, który umożliwia publikowanie-subskrybowanie i przetwarzanie komunikatów sterowane zdarzeniami. |
Protokół zabezpieczeń | Jak chcesz nawiązać połączenie z klastrem platformy Kafka. Usługa Azure Stream Analytics obsługuje biblioteki mTLS, SASL_SSL, SASL_PLAINTEXT lub None. |
Identyfikator grupy odbiorców | Nazwa grupy odbiorców platformy Kafka, która powinna być częścią danych wejściowych. Jest on automatycznie przypisywany, jeśli nie zostanie podany. |
Format serializacji zdarzeń | Format serializacji (JSON, CSV, Avro, Parquet, Protobuf) przychodzącego strumienia danych. |
Uwierzytelnianie i szyfrowanie
Do nawiązania połączenia z klastrami platformy Kafka można użyć czterech typów protokołów zabezpieczeń:
Nazwa właściwości | Opis |
---|---|
mTLS | Szyfrowanie i uwierzytelnianie. Obsługuje mechanizmy zabezpieczeń PLAIN, SCRAM-SHA-256 i SCRAM-SHA-512. |
SASL_SSL | Łączy dwa różne mechanizmy zabezpieczeń — SASL (Simple Authentication and Security Layer) i Secure Sockets Layer (SSL) — w celu zapewnienia uwierzytelniania i szyfrowania na potrzeby transmisji danych. Protokół SASL_SSL obsługuje mechanizmy zabezpieczeń PLAIN, SCRAM-SHA-256 i SCRAM-SHA-512. |
SASL_PLAINTEXT | Uwierzytelnianie standardowe z nazwą użytkownika i hasłem bez szyfrowania |
Brak | Brak uwierzytelniania i szyfrowania. |
Ważne
Aplikacja Confluent Cloud obsługuje uwierzytelnianie przy użyciu kluczy interfejsu API, protokołu OAuth lub logowania jednokrotnego SAML. Usługa Azure Stream Analytics nie obsługuje uwierzytelniania OAuth ani logowania jednokrotnego SAML. Możesz nawiązać połączenie z chmurą confluent przy użyciu klucza interfejsu API z dostępem na poziomie tematu za pośrednictwem protokołu zabezpieczeń SASL_SSL.
Aby zapoznać się z samouczkiem krok po kroku dotyczącym nawiązywania połączenia z platformą Kafka w chmurze confluent, zapoznaj się z dokumentacją:
- Dane wejściowe platformy Kafka w chmurze Confluent: przesyłanie strumieniowe danych z platformy Kafka do chmury confluent za pomocą usługi Azure Stream Analytics
- Dane wyjściowe platformy Kafka z chmury Confluent: przesyłanie strumieniowe danych z usługi Azure Stream Analytics do chmury confluent
Integracja z usługą Key Vault
Uwaga
W przypadku korzystania z certyfikatów magazynu zaufania z protokołami zabezpieczeń mTLS lub SASL_SSL musisz mieć usługę Azure Key Vault i tożsamość zarządzaną skonfigurowaną dla zadania usługi Azure Stream Analytics. Sprawdź ustawienia sieciowe magazynu kluczy, aby upewnić się, że wybrano opcję Zezwalaj na dostęp publiczny ze wszystkich sieci . Załóżmy, że magazyn kluczy znajduje się w sieci wirtualnej lub zezwala na dostęp tylko z określonych sieci. W takim przypadku należy wstrzyknąć zadanie usługi ASA do sieci wirtualnej zawierającej magazyn kluczy lub wstrzyknąć zadanie usługi ASA do sieci wirtualnej, a następnie połączyć magazyn kluczy z siecią wirtualną zawierającą zadanie przy użyciu punktów końcowych usługi.
Usługa Azure Stream Analytics bezproblemowo integruje się z usługą Azure Key Vault, aby uzyskać dostęp do przechowywanych wpisów tajnych wymaganych do uwierzytelniania i szyfrowania podczas korzystania z protokołów zabezpieczeń mTLS lub SASL_SSL. Zadanie usługi Azure Stream Analytics łączy się z usługą Azure Key Vault przy użyciu tożsamości zarządzanej, aby zapewnić bezpieczne połączenie i uniknąć eksfiltracji wpisów tajnych. Certyfikaty są przechowywane jako wpisy tajne w magazynie kluczy i muszą być w formacie PEM.
Konfigurowanie magazynu kluczy z uprawnieniami
Zasób magazynu kluczy można utworzyć, postępując zgodnie z dokumentacją Szybki start: Tworzenie magazynu kluczy przy użyciu witryny Azure Portal Aby przekazać certyfikaty, musisz mieć dostęp do magazynu kluczy. Postępuj zgodnie z poniższymi instrukcjami, aby udzielić dostępu administratora:
Uwaga
Aby przyznać inne uprawnienia magazynu kluczy, musisz mieć uprawnienia "Właściciel".
Wybierz pozycję Kontrola dostępu (IAM).
Wybierz pozycję Dodaj>przypisanie roli, aby otworzyć stronę Dodawanie przypisania roli.
Przypisz rolę przy użyciu następującej konfiguracji:
Ustawienie | Wartość |
---|---|
Rola | Key Vault Administrator |
Przypisz dostęp do | Użytkownik, grupa lub jednostka usługi |
Elementy członkowskie | <Informacje o koncie lub adres e-mail> |
Przekazywanie certyfikatu do magazynu kluczy za pomocą interfejsu wiersza polecenia platformy Azure
Ważne
Aby to polecenie działało prawidłowo, musisz mieć uprawnienia administratora usługi Key Vault. Aby można było prawidłowo przekazać certyfikat jako wpis tajny. Aby przekazać certyfikaty jako wpisy tajne do magazynu kluczy, musisz użyć interfejsu wiersza polecenia platformy Azure. Zadanie usługi Azure Stream Analytics zakończy się niepowodzeniem, gdy certyfikat używany do uwierzytelniania wygaśnie. Aby rozwiązać ten problem, musisz zaktualizować/zastąpić certyfikat w magazynie kluczy i ponownie uruchomić zadanie usługi Azure Stream Analytics.
Upewnij się, że interfejs wiersza polecenia platformy Azure został skonfigurowany lokalnie za pomocą programu PowerShell. Możesz odwiedzić tę stronę, aby uzyskać wskazówki dotyczące konfigurowania interfejsu wiersza polecenia platformy Azure: rozpoczynanie pracy z interfejsem wiersza polecenia platformy Azure
Zaloguj się do interfejsu wiersza polecenia platformy Azure:
az login
Połącz się z subskrypcją zawierającą magazyn kluczy:
az account set --subscription <subscription name>
Następujące polecenie może przekazać certyfikat jako wpis tajny do magazynu kluczy:
To <your key vault>
nazwa magazynu kluczy, do którego chcesz przekazać certyfikat. <name of the secret>
to dowolna nazwa, którą chcesz nadać wpisowi tajnemu i jak jest ona wyświetlana w magazynie kluczy. <file path to certificate>
to ścieżka do lokalizacji certyfikatu, w którym znajduje się certyfikat. Możesz kliknąć prawym przyciskiem myszy i skopiować ścieżkę do certyfikatu.
az keyvault secret set --vault-name <your key vault> --name <name of the secret> --file <file path to certificate>
Na przykład:
az keyvault secret set --vault-name mykeyvault --name kafkasecret --file C:\Users\Downloads\certificatefile.pem
Konfigurowanie tożsamości zarządzanej
Usługa Azure Stream Analytics wymaga skonfigurowania tożsamości zarządzanej w celu uzyskania dostępu do magazynu kluczy. Zadanie usługi ASA można skonfigurować do używania tożsamości zarządzanej, przechodząc do karty Tożsamość zarządzana po lewej stronie w obszarze Konfigurowanie.
- Wybierz kartę Tożsamość zarządzana w obszarze Konfiguracja.
- Wybierz pozycję Przełącz tożsamość i wybierz tożsamość, która ma być używana z zadaniem: tożsamość przypisana przez system lub tożsamość przypisana przez użytkownika.
- W przypadku tożsamości przypisanej przez użytkownika wybierz subskrypcję, w której znajduje się tożsamość przypisana przez użytkownika, i wybierz nazwę tożsamości.
- Przejrzyj i zapisz.
Udzielanie uprawnień do zadania usługi Stream Analytics w celu uzyskania dostępu do certyfikatu w magazynie kluczy
Aby zadanie usługi Azure Stream Analytics odczytywało wpis tajny w magazynie kluczy, zadanie musi mieć uprawnienia dostępu do magazynu kluczy. Wykonaj następujące kroki, aby udzielić specjalnych uprawnień do zadania usługi Stream Analytics:
Wybierz pozycję Kontrola dostępu (IAM).
Wybierz pozycję Dodaj>przypisanie roli, aby otworzyć stronę Dodawanie przypisania roli.
Przypisz rolę przy użyciu następującej konfiguracji:
Ustawienie | Wartość |
---|---|
Rola | Użytkownik wpisów tajnych usługi Key Vault |
Tożsamość zarządzana | Zadanie usługi Stream Analytics dla tożsamości zarządzanej przypisanej przez system lub tożsamości zarządzanej przypisanej przez użytkownika |
Elementy członkowskie | <Nazwa zadania> usługi Stream Analytics lub <nazwy tożsamości przypisanej przez użytkownika> |
Integracja sieci wirtualnej
Jeśli klaster Platformy Kafka znajduje się w sieci wirtualnej lub za zaporą, skonfiguruj zadanie usługi Azure Stream Analytics, aby uzyskać dostęp do tematu platformy Kafka przy użyciu łącza prywatnego lub dedykowanej konfiguracji sieci. Więcej informacji można znaleźć w dokumentacji Uruchamianie zadania usługi Azure Stream Analytics w usłudze Azure Virtual Network.
Ograniczenia
- Podczas konfigurowania zadań usługi Azure Stream Analytics do korzystania z usługi Virtual Network/SWIFT zadanie musi być skonfigurowane z co najmniej sześcioma (6) jednostkami przesyłania strumieniowego lub jedną (1) jednostką przesyłania strumieniowego w wersji 2.
- W przypadku korzystania z biblioteki mTLS lub SASL_SSL z usługą Azure Key Vault należy przekonwertować magazyn kluczy Java na format PEM.
- Minimalna wersja platformy Kafka, którą można skonfigurować w usłudze Azure Stream Analytics w celu nawiązania połączenia z wersją 0.10.
- Usługa Azure Stream Analytics nie obsługuje uwierzytelniania w chmurze confluent przy użyciu protokołu OAuth lub logowania jednokrotnego SAML. Klucz interfejsu API należy używać za pośrednictwem protokołu SASL_SSL
Uwaga
Aby uzyskać bezpośrednią pomoc dotyczącą korzystania z danych wejściowych platformy Kafka usługi Azure Stream Analytics, skontaktuj się z .askasa@microsoft.com