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:

  1. Erstellen Sie einen Azure Stream Analytics-Auftrag.
  2. Konfigurieren Sie Ihren Azure Stream Analytics-Auftrag für die Verwendung einer verwalteten Identität, wenn Sie die Sicherheitsprotokolle mTLS oder SASL_SSL verwenden.
  3. Konfigurieren Sie Azure Key Vault, wenn Sie die Sicherheitsprotokolle mTLS oder SASL_SSL verwenden.
  4. Laden Sie Zertifikate als Geheimnisse in Azure Key Vault hoch.
  5. Erteilen Sie Azure Stream Analytics Berechtigungen für den Zugriff auf das hochgeladene Zertifikat.
  6. 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.

Screenshot, der zeigt, wie Sie die Kafka-Eingabe für einen Datenstromanalyseauftrag konfigurieren.

Authentifizierung und Verschlüsselung

Sie können vier Arten von Sicherheitsprotokollen verwenden, um eine Verbindung mit Ihren Kafka-Clustern herzustellen:

Hinweis

Für SASL_SSL und SASL_PLAINTEXT unterstützt Azure Stream Analytics nur den PLAIN SASL-Mechanismus. Sie müssen Zertifikate mithilfe der Azure-Befehlszeilenschnittstelle als Geheimnisse in den Schlüsseltresor hochladen.

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:

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.

  1. Wählen Sie die Option Zugriffssteuerung (IAM) aus.

  2. Wählen Sie Hinzufügen>Rollenzuweisung hinzufügen aus, um die Seite Rollenzuweisung hinzufügen zu öffnen.

  3. 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.

Screenshot, der zeigt, wie verwaltete Identität für einen ASA-Auftrag konfiguriert wird.

  1. Klicken Sie unter Konfigurieren auf die Registerkarte Verwaltete Identität.
  2. 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.
  3. 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.
  4. Ü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:

  1. Wählen Sie die Option Zugriffssteuerung (IAM) aus.

  2. Wählen Sie Hinzufügen>Rollenzuweisung hinzufügen aus, um die Seite Rollenzuweisung hinzufügen zu öffnen.

  3. 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.

Nächste Schritte