Streamen von Daten aus Kafka in Azure Stream Analytics (Vorschau)
Kafka ist eine verteilte Streaming-Plattform, die zum Veröffentlichen und Abonnieren von Datenströmen verwendet wird. Kafka ist so konzipiert, dass Ihre Apps Datensätze verarbeiten können, sobald sie auftreten. Es ist ein Open-Source-System, das von der Apache Software Foundation entwickelt und in Java und Scala geschrieben wurde.
Im Folgenden sind die wichtigsten Anwendungsfälle aufgeführt:
- Nachrichten
- Website-Aktivitätsüberwachung
- metrics
- Protokollaggregation
- Streamverarbeitung
Mit Azure Stream Analytics können Sie eine direkte Verbindung mit Kafka-Clustern herstellen, um Daten zu erfassen. Die Lösung enthält nur wenig Code und wird vollständig vom Azure Stream Analytics-Team bei Microsoft verwaltet, sodass sie die Compliance-Standards des Unternehmens erfüllt. Die ASA Kafka-Eingabe ist abwärtskompatibel und unterstützt alle Versionen mit dem neuesten Clientrelease ab Version 0.10. Benutzer können je nach Konfiguration eine Verbindung mit Kafka-Clustern in einem VNET- und Kafka-Cluster herstellen. Die Konfiguration basiert auf vorhandenen Kafka-Konfigurationskonventionen. Unterstützte Komprimierungstypen sind None, Gzip, Snappy, LZ4 und Zstd.
Schritte
In diesem Artikel wird gezeigt, wie Sie Kafka als Eingabequelle für Azure Stream Analytics einrichten. Es gibt sechs Schritte:
- Erstellen Sie einen Azure Stream Analytics-Auftrag.
- Konfigurieren Sie Ihren Azure Stream Analytics-Auftrag für die Verwendung einer verwalteten Identität, wenn Sie die Sicherheitsprotokolle mTLS oder SASL_SSL verwenden.
- Konfigurieren Sie Azure Key Vault, wenn Sie die Sicherheitsprotokolle mTLS oder SASL_SSL verwenden.
- Laden Sie Zertifikate als Geheimnisse in Azure Key Vault hoch.
- Erteilen Sie Azure Stream Analytics Berechtigungen für den Zugriff auf das hochgeladene Zertifikat.
- Konfigurieren Sie die Kafka-Eingabe in Ihrem Azure Stream Analytics-Auftrag.
Hinweis
Je nachdem, wie Ihr Kafka-Cluster konfiguriert ist und welchen Typ von Kafka-Cluster Sie verwenden, gelten einige der oben genannten Schritte möglicherweise nicht für Sie. Beispiele: Wenn Sie Confluent Cloud Kafka verwenden, müssen Sie kein Zertifikat hochladen, um den Kafka-Connector zu verwenden. Wenn sich Ihr Kafka-Cluster in einem virtuellen Netzwerk (VNET) oder hinter einer Firewall befindet, müssen Sie Ihren Azure Stream Analytics-Auftrag möglicherweise so konfigurieren, dass er über eine private Verbindung oder eine dedizierte Netzwerkkonfiguration auf Ihr Kafka-Thema zugreift.
Konfiguration
In der folgenden Tabelle finden Sie die Eigenschaftsnamen und ihre Beschreibung für die Erstellung eines Kafka-Inputs:
Wichtig
Um Ihren Kafka-Cluster als Eingabe zu konfigurieren, sollte der Zeitstempeltyp des Eingabethemas LogAppendTime sein. Der einzige Zeitstempeltyp, den Azure Stream Analytics unterstützt, ist LogAppendTime. Azure Stream Analytics unterstützt nur numerisches Dezimalformat.
Name der Eigenschaft | Beschreibung |
---|---|
Eingabe-/Ausgabealias | Ein Anzeigename, der in Abfragen verwendet wird, um auf Ihre Eingabe oder Ausgabe zu verweisen |
Bootstrap-Serveradressen | Eine Liste der Host-/Portpaare zum Herstellen der Verbindung mit dem Kafka-Cluster. |
Kafka-Thema | Ein benannter, sortierter und partitionierter Datenstrom, der die veröffentlichungsgesteuerte Verarbeitung von Nachrichten ermöglicht. |
Sicherheitsprotokoll | Wie Sie eine Verbindung mit Ihrem Kafka-Cluster herstellen möchten. Azure Stream Analytics unterstützt mTLS, SASL_SSL, SASL_PLAINTEXT oder None. |
Consumer-Gruppe ID | Der Name der Kafka-Verbrauchergruppe, zu der die Eingabe gehört. Wenn sie nicht angegeben wird, wird sie automatisch zugewiesen. |
Ereignisserialisierungsformat | Das Serialisierungsformat (JSON, CSV, Avro, Parkett, Protobuf) des eingehenden Datenstroms. |
Authentifizierung und Verschlüsselung
Sie können vier Arten von Sicherheitsprotokollen verwenden, um eine Verbindung mit Ihren Kafka-Clustern herzustellen:
Name der Eigenschaft | Beschreibung |
---|---|
mTLS | Verschlüsselung und Authentifizierung. Unterstützt PLAIN-, SCRAM-SHA-256- und SCRAM-SHA-512-Sicherheitsmechanismen. |
SASL_SSL | Es kombiniert zwei verschiedene Sicherheitsmechanismen: SASL (Simple Authentication and Security Layer) und SSL (Secure Sockets Layer), um sicherzustellen, dass sowohl die Authentifizierung als auch die Verschlüsselung für die Datenübertragung vorhanden sind. Das SASL_SSL-Protokoll unterstützt PLAIN-, SCRAM-SHA-256- und SCRAM-SHA-512-Sicherheitsmechanismen. |
SASL_PLAINTEXT | Standardauthentifizierung mit Benutzername und Kennwort ohne Verschlüsselung |
Keine | Keine Authentifizierung und Verschlüsselung. |
Wichtig
Confluent Cloud unterstützt die Authentifizierung mit API-Schlüsseln, OAuth oder SAML Single Sign-On (SSO). Azure Stream Analytics unterstützt keine Authentifizierung mit OAuth oder SAML SSO (Single Sign-On, einmaliges Anmelden). Sie können mit einem API-Schlüssel, der über das Sicherheitsprotokoll SASL_SSL Zugriff auf Themenebene hat, eine Verbindung mit Confluent Cloud herstellen.
Ein ausführliches Tutorial zum Herstellen einer Verbindung mit Confluent Cloud Kafka finden Sie in der Dokumentation:
- Confluent Cloud Kafka-Eingabe: Streamen von Daten aus Confluent Cloud Kafka mit Azure Stream Analytics
- Confluent Cloud Kafka-Ausgabe: Streamen von Daten aus Azure Stream Analytics in Confluent Cloud
Key Vault-Integration
Hinweis
Wenn Sie Vertrauensspeicherzertifikate mit mTLS oder SASL_SSL Sicherheitsprotokollen verwenden, müssen Sie Azure Key Vault und verwaltete Identität für Ihren Azure Stream Analytics-Auftrag konfiguriert haben. Überprüfen Sie die Netzwerkeinstellungen Ihres Schlüsseltresors, um sicherzustellen, dass Öffentlichen Zugriff aus allen Netzwerken zulassen ausgewählt ist. Angenommen, Ihr Schlüsseltresor befindet sich in einem VNET oder lässt nur den Zugriff aus bestimmten Netzwerken zu. In diesem Fall müssen Sie Ihren ASA-Auftrag in ein VNET mit dem Schlüsseltresor einfügen oder Ihren ASA-Auftrag in ein VNET einfügen und dann Ihren Schlüsseltresor mit dem VNET verbinden, das den Auftrag enthält, der Dienstendpunkte verwendet.
Azure Stream Analytics wird nahtlos in Azure Key Vault integriert, um auf gespeicherte Geheimschlüssel zuzugreifen, die für die Authentifizierung und Verschlüsselung erforderlich sind, wenn mTLS oder SASL_SSL Sicherheitsprotokolle verwendet werden. Ihr Azure Stream Analytics-Auftrag stellt mit der verwalteten Identität eine Verbindung mit Ihrem Azure Key Vault her und gewährleistet so eine sichere Verbindung und vermeidet die Exfiltration von Geheimnissen. Zertifikate werden als Geheimnisse im Schlüsseltresor gespeichert und müssen im PEM-Format vorliegen.
Konfigurieren Sie Key Vault mit Berechtigungen
Sie können eine Schlüsseltresorressource erstellen, indem Sie der Dokumentation unter Schnellstart: Erstellen eines Schlüsseltresors über das Azure-Portal folgen. Um Zertifikate hochzuladen, benötigen Sie Zugriff als Key Vault-Administrator auf Ihren Schlüsseltresor. Führen Sie die folgenden Schritte durch, um Administratorzugriff zuzuweisen:
Hinweis
Sie benötigen Besitzer-Berechtigungen, um anderen Personen Berechtigungen für den Schlüsseltresor zuzuweisen.
Wählen Sie die Option Zugriffssteuerung (IAM) aus.
Wählen Sie Hinzufügen>Rollenzuweisung hinzufügen aus, um die Seite Rollenzuweisung hinzufügen zu öffnen.
Weisen Sie die Rolle mit der folgenden Konfiguration zu:
Einstellung | Wert |
---|---|
Rolle | Key Vault-Administrator |
Zugriff zuweisen zu | Benutzer, Gruppe oder Dienstprinzipal |
Member | <Ihre Kontoinformationen oder E-Mail> |
Hochladen des Zertifikats zu Key Vault über die Azure CLI
Wichtig
Sie benötigen Zugriff als Key Vault-Administrator auf Ihren Schlüsseltresor, damit dieser Befehl ordnungsgemäß funktioniert. Sie müssen das Zertifikat als Geheimnis hochladen. Sie müssen die Azure CLI verwenden, um Zertifikate als Geheimnis in Ihren Schlüsseltresor hochzuladen. Ihr Azure Stream Analytics-Auftrag schlägt fehl, wenn das für die Authentifizierung verwendete Zertifikat abläuft. Um dieses Problem zu beheben, müssen Sie das Zertifikat in Ihrem Schlüsseltresor aktualisieren/ersetzen und Ihren Azure Stream Analytics-Auftrag neu starten.
Stellen Sie sicher, dass die Azure CLI lokal mit PowerShell konfiguriert ist. Auf dieser Seite finden Sie Anleitungen zur Einrichtung der Azure CLI: Erste Schritte mit der Azure CLI
Melden Sie sich bei der Azure CLI an:
az login
Stellen Sie eine Verbindung zu Ihrem Abonnement her, das Ihren Schlüsseltresor enthält:
az account set --subscription <subscription name>
Mit dem folgenden Befehl können Sie das Zertifikat als Geheimnis in Ihren Schlüsseltresor hochladen:
<your key vault>
ist der Name des Schlüsseltresors, in den Sie das Zertifikat hochladen möchten. <name of the secret>
ist jeder Name, den Sie Ihrem Geheimschlüssel geben möchten und wie er im Schlüsseltresor angezeigt wird. <file path to certificate>
ist der Pfad zum Speicherort Ihres Zertifikats. Sie können mit der rechten Maustaste klicken und den Pfad zum Zertifikat kopieren.
az keyvault secret set --vault-name <your key vault> --name <name of the secret> --file <file path to certificate>
Beispiel:
az keyvault secret set --vault-name mykeyvault --name kafkasecret --file C:\Users\Downloads\certificatefile.pem
Konfigurieren einer verwalteten Identität
Azure Stream Analytics erfordert, dass Sie die verwaltete Identität für den Zugriff auf den Schlüsseltresor konfigurieren. Sie können Ihren ASA-Auftrag so konfigurieren, dass verwaltete Identitäten verwendet werden. Navigieren Sie dazu auf der linken Seite unter Konfigurieren zur Registerkarte Verwaltete Identität.
- Klicken Sie unter Konfigurieren auf die Registerkarte Verwaltete Identität.
- Wählen Sie Identität wechseln aus, und wählen Sie die Identität aus, die für den Auftrag verwendet werden soll: systemseitig zugewiesene Identität oder benutzerseitig zugewiesene Identität.
- Wählen Sie für eine benutzerseitig zugewiesene Identität das Abonnement aus, in dem sich Ihre benutzerseitig zugewiesene Identität befindet, und wählen Sie den Namen Ihrer Identität aus.
- Überprüfen Sie Ihre Angaben, und speichern Sie sie.
Zuweisen der Berechtigung für den Zugriff auf das Zertifikat im Schlüsseltresor zum Stream Analytics-Auftrag
Damit Ihr Azure Stream Analytics-Auftrag den geheimen Schlüssel im Schlüsseltresor lesen kann, muss der Auftrag über die Berechtigung zum Zugriff auf den Schlüsseltresor verfügen. Führen Sie die folgenden Schritte aus, um Ihrem Stream Analytics-Auftrag spezielle Berechtigungen zu erteilen:
Wählen Sie die Option Zugriffssteuerung (IAM) aus.
Wählen Sie Hinzufügen>Rollenzuweisung hinzufügen aus, um die Seite Rollenzuweisung hinzufügen zu öffnen.
Weisen Sie die Rolle mit der folgenden Konfiguration zu:
Einstellung | Wert |
---|---|
Rolle | Key Vault-Geheimnisbenutzer |
Verwaltete Identität | Stream Analytics-Auftrag für die vom System zugewiesene verwaltete Identität oder die vom Benutzer zugewiesene verwaltete Identität |
Member | <Name Ihres Stream Analytics-Auftrags> oder <Name der vom Benutzer zugewiesenen Identität> |
VNet-Integration
Wenn sich Ihr Kafka-Cluster in einem virtuellen Netzwerk (VNET) oder hinter einer Firewall befindet, müssen Sie Ihren Azure Stream Analytics-Auftrag möglicherweise so konfigurieren, dass er über eine private Verbindung oder eine dedizierte Netzwerkkonfiguration auf Ihr Kafka-Thema zugreift. Weitere Informationen finden Sie unter Ausführen eines Azure Stream Analytics-Auftrags in einem virtuellen Azure-Netzwerk.
Begrenzungen
- Wenn Sie Ihre Azure Stream Analytics-Aufträge für die Verwendung von VNET/SWIFT konfigurieren, muss Ihr Auftrag mit mindestens sechs (6) Streamingeinheiten oder einer (1) V2-Streamingeinheit konfiguriert werden.
- Wenn Sie mTLS oder SASL_SSL mit Azure Key Vault verwenden, müssen Sie Ihren Java Key Store in das PEM-Format konvertieren.
- Die Mindestversion von Kafka, mit der Sie Azure Stream Analytics für die Verbindung konfigurieren können, ist Version 0.10.
- Azure Stream Analytics unterstützt keine Authentifizierung für die Confluent Cloud mit OAuth oder SAML Single Sign-On (SSO). Sie müssen den API-Schlüssel über das SASL_SSL-Protokoll verwenden.
Hinweis
Für direkte Hilfe bei der Verwendung der Azure Stream Analytics Kafka-Eingabe wenden Sie sich bitte an askasa@microsoft.com.