Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Die Diagnoseemittererweiterung von Synapse Apache Spark ist eine Bibliothek, die es der Apache Spark-Anwendung ermöglicht, Protokolle, Ereignisprotokolle und Metriken an ein einzelnes Ziel oder an mehrere Ziele wie Azure Log Analytics, Azure Storage und Azure Event Hubs auszugeben.
In diesem Lernprogramm erfahren Sie, wie Sie die Diagnose-Emittererweiterung Synapse Apache Spark verwenden, um Die Protokolle, Ereignisprotokolle und Metriken von Apache Spark-Anwendungen an Ihre Azure Event Hubs zu senden.
Sammeln von Protokollen und Metriken in Azure Event Hubs
Schritt 1: Erstellen einer Azure Event Hubs-Instanz
Zum Sammeln von Diagnoseprotokollen und Metriken für Azure Event Hubs kann eine bereits vorhandene Azure Event Hubs-Instanz verwendet werden. Sollten Sie über keine verfügen, können Sie einen Event Hub erstellen.
Schritt 2: Erstellen einer Apache Spark-Konfigurationsdatei
Erstellen Sie eine Datei namens diagnostic-emitter-azure-event-hub-conf.txt
, und kopieren Sie den folgenden Inhalt in die Datei. Alternativ können Sie eine Beispielvorlagendatei für die Apache Spark-Poolkonfiguration herunterladen.
spark.synapse.diagnostic.emitters MyDestination1
spark.synapse.diagnostic.emitter.MyDestination1.type AzureEventHub
spark.synapse.diagnostic.emitter.MyDestination1.categories Log,EventLog,Metrics
spark.synapse.diagnostic.emitter.MyDestination1.secret <connection-string>
Geben Sie in der Konfigurationsdatei den folgenden Parameter an: <connection-string>
.
Weitere Beschreibungen der Parameter finden Sie unter Azure Event Hubs-Konfigurationen.
Schritt 3: Hochladen der Apache Spark-Konfigurationsdatei in den Apache Spark-Pool
- Navigieren Sie zu Ihrem Apache Spark-Pool in Synapse Studio (Manage -> Apache Spark pools).
- Klicken Sie rechts neben Ihrem Apache Spark-Pool auf die Schaltfläche ... , und wählen Sie Apache Spark configuration (Apache Spark-Konfiguration) aus.
- Klicken Sie auf Upload (Hochladen), wählen Sie die TXT-Konfigurationsdatei aus, und klicken Sie anschließend auf Apply (Anwenden).
Verfügbare Konfigurationen
Konfiguration | BESCHREIBUNG |
---|---|
spark.synapse.diagnostic.emitters |
Erforderlich. Kommagetrennte Liste der Zielnamen von Diagnoseemittern. |
spark.synapse.diagnostic.emitter.<destination>.type |
Erforderlich. Integrierter Zieltyp Zum Aktivieren des Azure Event Hubs-Ziels muss der Wert AzureEventHub lauten. |
spark.synapse.diagnostic.emitter.<destination>.categories |
Wahlfrei. Durch Trennzeichen getrennte Liste der ausgewählten Protokollkategorien. Verfügbare Werte: DriverLog , ExecutorLog , EventLog , Metrics . Ist diese Option nicht festgelegt, werden standardmäßig alle Kategorien verwendet. |
spark.synapse.diagnostic.emitter.<destination>.secret |
Wahlfrei. Die Verbindungszeichenfolge der Azure Event Hubs-Instanz. Dieses Feld muss dem folgenden Muster entsprechen: Endpoint=sb://<FQDN>/;SharedAccessKeyName=<KeyName>;SharedAccessKey=<KeyValue>;EntityPath=<PathName> . |
spark.synapse.diagnostic.emitter.<destination>.secret.keyVault |
Erforderlich, wenn .secret nicht angegeben ist. Der Name des Azure Key Vault (AKV), in dem der geheime Schlüssel (Verbindungszeichenfolge) gespeichert ist. |
spark.synapse.diagnostic.emitter.<destination>.secret.keyVault.secretName |
Erforderlich, wenn .secret.keyVault angegeben wird. Der Name des Azure Key Vault-Geheimnisses, in dem das Geheimnis (Verbindungszeichenfolge) gespeichert ist. |
spark.synapse.diagnostic.emitter.<destination>.secret.keyVault.linkedService |
Wahlfrei. Der Name des mit Azure Key Vault verknüpften Diensts. Wenn dies in Synapse-Pipeline aktiviert ist, ist dies erforderlich, um den geheimen Schlüssel von AKV zu erhalten. (Stellen Sie sicher, dass die Managed Service Identity (MSI) über Leseberechtigung für den AKV verfügt). |
spark.synapse.diagnostic.emitter.<destination>.filter.eventName.match |
Wahlfrei. Die durch Kommas getrennten Spark-Ereignisnamen, mit denen festgelegt werden kann, welche Ereignisse gesammelt werden sollen. Beispiel: SparkListenerApplicationStart,SparkListenerApplicationEnd |
spark.synapse.diagnostic.emitter.<destination>.filter.loggerName.match |
Wahlfrei. Mit den kommagetrennten Log4j-Logger-Namen können Sie angeben, welche Protokolle gesammelt werden sollen. Beispiel: org.apache.spark.SparkContext,org.example.Logger |
spark.synapse.diagnostic.emitter.<destination>.filter.metricName.match |
Wahlfrei. Mit den durch Trennzeichen getrennten Spark-Metriknamensuffixen können Sie angeben, welche Metriken erfasst werden sollen. Beispiel: jvm.heap.used |
Hinweis
Die Verbindungszeichenfolge der Azure Event Hubs-Instanz sollte immer enthalten EntityPath
, was der Name der Azure Event Hubs-Instanz ist.
Beispiel für Protokolldaten
Hier sehen Sie einen exemplarischen Protokolldatensatz im JSON-Format:
{
"timestamp": "2021-01-02T12:34:56.789Z",
"category": "Log|EventLog|Metrics",
"workspaceName": "<my-workspace-name>",
"sparkPool": "<spark-pool-name>",
"livyId": "<livy-session-id>",
"applicationId": "<application-id>",
"applicationName": "<application-name>",
"executorId": "<driver-or-executor-id>",
"properties": {
// The message properties of logs, events and metrics.
"timestamp": "2021-01-02T12:34:56.789Z",
"message": "Registering signal handler for TERM",
"logger_name": "org.apache.spark.util.SignalUtils",
"level": "INFO",
"thread_name": "main"
// ...
}
}
Synapse-Arbeitsbereich mit aktiviertem Schutz vor Datenexfiltration
Azure Synapse Analytics-Arbeitsbereiche unterstützen die Aktivierung des Schutzes vor Datenexfiltration für Arbeitsbereiche. Bei Exfiltrationsschutz können die Protokolle und Metriken nicht direkt an die Zielendpunkte gesendet werden. In diesem Szenario können Sie entsprechende verwaltete private Endpunkte für verschiedene Zielendpunkte erstellen oder IP-Firewallregeln erstellen.
Sammeln von Apache Spark-Anwendungsprotokollen und Metriken nach Zertifikat und Dienstprinzipal
Die Apache Spark-Diagnose-Emitter-Erweiterung unterstützt jetzt den Zugriff auf Azure Event Hub durch Token-Abruf über die Service Principal-Authentifizierung mit Zertifikatsanmeldeinformationen. Weitere Informationen finden Sie im Artikel "Sammeln von Apache Spark Application Logs und Metriken zu Azure Event Hubs mit Certificate-Based-Diensthauptanmeldeinformationen".